From f31c90cb6182a57c590f5ec432e0257517754697 Mon Sep 17 00:00:00 2001 From: fyy <2717885210@qq.com> Date: Thu, 19 Jun 2025 16:54:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=BC=9A=E8=AE=AE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../conferenceAddServices/index.vue | 5 + .../conferenceReservationRecords/data.ts | 270 ++++++++++++++ .../index.vue | 0 .../roomBooking-modal.vue | 0 .../conferenceReservations/index.vue | 134 +++++++ .../roomBooking/conferenceSettings/index.vue | 7 + .../roomBooking/{ => conferenceView}/data.ts | 0 .../roomBooking/conferenceView/index.vue | 330 ++++++++++++++++++ .../conferenceView/roomBooking-modal.vue | 101 ++++++ 9 files changed, 847 insertions(+) create mode 100644 apps/web-antd/src/views/property/roomBooking/conferenceAddServices/index.vue create mode 100644 apps/web-antd/src/views/property/roomBooking/conferenceReservationRecords/data.ts rename apps/web-antd/src/views/property/roomBooking/{ => conferenceReservationRecords}/index.vue (100%) rename apps/web-antd/src/views/property/roomBooking/{ => conferenceReservationRecords}/roomBooking-modal.vue (100%) create mode 100644 apps/web-antd/src/views/property/roomBooking/conferenceReservations/index.vue create mode 100644 apps/web-antd/src/views/property/roomBooking/conferenceSettings/index.vue rename apps/web-antd/src/views/property/roomBooking/{ => conferenceView}/data.ts (100%) create mode 100644 apps/web-antd/src/views/property/roomBooking/conferenceView/index.vue create mode 100644 apps/web-antd/src/views/property/roomBooking/conferenceView/roomBooking-modal.vue diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceAddServices/index.vue b/apps/web-antd/src/views/property/roomBooking/conferenceAddServices/index.vue new file mode 100644 index 00000000..c97d2a01 --- /dev/null +++ b/apps/web-antd/src/views/property/roomBooking/conferenceAddServices/index.vue @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceReservationRecords/data.ts b/apps/web-antd/src/views/property/roomBooking/conferenceReservationRecords/data.ts new file mode 100644 index 00000000..fae41f2c --- /dev/null +++ b/apps/web-antd/src/views/property/roomBooking/conferenceReservationRecords/data.ts @@ -0,0 +1,270 @@ +import type { FormSchemaGetter } from '#/adapter/form'; +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { getDictOptions } from '#/utils/dict'; +import { renderDict } from '#/utils/render'; + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'roomName', + label: '会议室名称', + }, + { + component: 'Input', + fieldName: 'bookingName', + label: '会议预订人', + }, + { + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.WY_YYZT 便于维护 + options: getDictOptions('wy_yyzt'), + }, + fieldName: 'bookingStatus', + label: '预约状态', + }, + +]; + +// 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 +// export const columns: () => VxeGridProps['columns'] = () => [ +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '会议室id', + field: 'tbConferenceId', + }, + { + title: '预约状态', + field: 'bookingStatus', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.WY_YYZT 便于维护 + return renderDict(row.bookingStatus, 'wy_yyzt'); + }, + }, + }, + { + title: '审核状态', + field: 'reviewStatus', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.WY_SHZT 便于维护 + return renderDict(row.reviewStatus, 'wy_shzt'); + }, + }, + }, + { + title: '会议预订人', + field: 'bookingName', + }, + { + title: '使用单位', + field: 'userUnit', + }, + { + title: '会议主题', + field: 'conferenceTheme', + }, + { + title: '预约日期', + field: 'appointmentDate', + }, + { + title: '预约开始时段', + field: 'appointmentBeginTime', + }, + { + title: '预约结束时段', + field: 'appointmentEndTime', + }, + { + title: '参会人员', + field: 'attendeesName', + }, + { + title: '参会人数', + field: 'approverCount', + }, + { + title: '签到开始时间', + field: 'checkInStartTime', + }, + { + title: '签到结束时间', + field: 'checkInEndTime', + }, + { + title: '评价', + field: 'evaluate', + }, + { + title: '备注', + field: 'remark', + }, + { + title: '是否需要增值服务', + field: 'addServices', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.WY_SF 便于维护 + return renderDict(row.addServices, 'wy_sf'); + }, + }, + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, +]; + +export const modalSchema: FormSchemaGetter = () => [ + { + label: 'id', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '会议室id', + fieldName: 'tbConferenceId', + component: 'Input', + rules: 'required', + }, + { + label: '预约状态', + fieldName: 'bookingStatus', + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.WY_YYZT 便于维护 + options: getDictOptions('wy_yyzt'), + }, + rules: 'selectRequired', + }, + { + label: '审核状态', + fieldName: 'reviewStatus', + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.WY_SHZT 便于维护 + options: getDictOptions('wy_shzt'), + }, + rules: 'selectRequired', + }, + { + label: '会议预订人', + fieldName: 'bookingName', + component: 'Input', + rules: 'required', + }, + { + label: '使用单位', + fieldName: 'userUnit', + component: 'Input', + rules: 'required', + }, + { + label: '会议主题', + fieldName: 'conferenceTheme', + component: 'Input', + rules: 'required', + }, + { + label: '预约日期', + fieldName: 'appointmentDate', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '预约开始时段', + fieldName: 'appointmentBeginTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '预约结束时段', + fieldName: 'appointmentEndTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '参会人员', + fieldName: 'attendeesName', + component: 'Input', + rules: 'required', + }, + { + label: '参会人数', + fieldName: 'approverCount', + component: 'Input', + rules: 'required', + }, + { + label: '签到开始时间', + fieldName: 'checkInStartTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '签到结束时间', + fieldName: 'checkInEndTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '评价', + fieldName: 'evaluate', + component: 'Input', + rules: 'required', + }, + { + label: '备注', + fieldName: 'remark', + component: 'Input', + rules: 'required', + }, + { + label: '是否需要增值服务', + fieldName: 'addServices', + component: 'RadioGroup', + componentProps: { + // 可选从DictEnum中获取 DictEnum.WY_SF 便于维护 + options: getDictOptions('wy_sf'), + buttonStyle: 'solid', + optionType: 'button', + }, + rules: 'selectRequired', + }, +]; diff --git a/apps/web-antd/src/views/property/roomBooking/index.vue b/apps/web-antd/src/views/property/roomBooking/conferenceReservationRecords/index.vue similarity index 100% rename from apps/web-antd/src/views/property/roomBooking/index.vue rename to apps/web-antd/src/views/property/roomBooking/conferenceReservationRecords/index.vue diff --git a/apps/web-antd/src/views/property/roomBooking/roomBooking-modal.vue b/apps/web-antd/src/views/property/roomBooking/conferenceReservationRecords/roomBooking-modal.vue similarity index 100% rename from apps/web-antd/src/views/property/roomBooking/roomBooking-modal.vue rename to apps/web-antd/src/views/property/roomBooking/conferenceReservationRecords/roomBooking-modal.vue diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceReservations/index.vue b/apps/web-antd/src/views/property/roomBooking/conferenceReservations/index.vue new file mode 100644 index 00000000..c1a49beb --- /dev/null +++ b/apps/web-antd/src/views/property/roomBooking/conferenceReservations/index.vue @@ -0,0 +1,134 @@ + + + + + \ No newline at end of file diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/index.vue b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/index.vue new file mode 100644 index 00000000..1559743c --- /dev/null +++ b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/index.vue @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/apps/web-antd/src/views/property/roomBooking/data.ts b/apps/web-antd/src/views/property/roomBooking/conferenceView/data.ts similarity index 100% rename from apps/web-antd/src/views/property/roomBooking/data.ts rename to apps/web-antd/src/views/property/roomBooking/conferenceView/data.ts diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceView/index.vue b/apps/web-antd/src/views/property/roomBooking/conferenceView/index.vue new file mode 100644 index 00000000..57b243e6 --- /dev/null +++ b/apps/web-antd/src/views/property/roomBooking/conferenceView/index.vue @@ -0,0 +1,330 @@ + + + + + diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceView/roomBooking-modal.vue b/apps/web-antd/src/views/property/roomBooking/conferenceView/roomBooking-modal.vue new file mode 100644 index 00000000..0841d157 --- /dev/null +++ b/apps/web-antd/src/views/property/roomBooking/conferenceView/roomBooking-modal.vue @@ -0,0 +1,101 @@ + + + +