From 5516e79b5d654aa6f35ef5697625c4774aa39afa Mon Sep 17 00:00:00 2001 From: fyy <2717885210@qq.com> Date: Wed, 27 Aug 2025 17:57:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=80=9A=E8=A1=8C=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resident/passRecordManagement/index.ts | 11 ++ .../resident/carPassRecordManagement/data.ts | 151 +++++++++++++++++ .../carPassRecordManagement/index.vue | 127 ++++++++++++++ .../record-detail-modal.vue | 0 .../personPassRecordManagement/data.ts | 131 +++++++++++++++ .../personPassRecordManagement/index.vue | 102 ++++++++++++ .../record-detail-modal.vue | 157 ++++++++++++++++++ 7 files changed, 679 insertions(+) create mode 100644 apps/web-antd/src/api/property/resident/passRecordManagement/index.ts create mode 100644 apps/web-antd/src/views/property/resident/carPassRecordManagement/data.ts create mode 100644 apps/web-antd/src/views/property/resident/carPassRecordManagement/index.vue create mode 100644 apps/web-antd/src/views/property/resident/carPassRecordManagement/record-detail-modal.vue create mode 100644 apps/web-antd/src/views/property/resident/personPassRecordManagement/data.ts create mode 100644 apps/web-antd/src/views/property/resident/personPassRecordManagement/index.vue create mode 100644 apps/web-antd/src/views/property/resident/personPassRecordManagement/record-detail-modal.vue diff --git a/apps/web-antd/src/api/property/resident/passRecordManagement/index.ts b/apps/web-antd/src/api/property/resident/passRecordManagement/index.ts new file mode 100644 index 00000000..92b2c5fd --- /dev/null +++ b/apps/web-antd/src/api/property/resident/passRecordManagement/index.ts @@ -0,0 +1,11 @@ +import { requestClient } from '#/api/request'; +import type { PageResult } from '#/api/common'; + +/** + * 通行记录列表 + * @param data + * @returns void + */ +export function getVisitorList(params?: any) { + return requestClient.get>('/sis/visitor/list', { params }); +} diff --git a/apps/web-antd/src/views/property/resident/carPassRecordManagement/data.ts b/apps/web-antd/src/views/property/resident/carPassRecordManagement/data.ts new file mode 100644 index 00000000..96da3f8d --- /dev/null +++ b/apps/web-antd/src/views/property/resident/carPassRecordManagement/data.ts @@ -0,0 +1,151 @@ +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: 'actionTime', + label: '通行时间', + }, + { + component: 'Input', + fieldName: 'customerName', + label: '人员姓名', + }, + { + component: 'Input', + fieldName: 'organFullPath', + label: '组织机构', + }, + { + component: 'Input', + fieldName: 'doorName', + label: '门/电梯名称', + }, + { + component: 'Input', + fieldName: 'deviceName', + label: '设备名称', + }, + { + component: 'Select', + componentProps: { + options: getDictOptions('wy_txjllx'), + }, + fieldName: 'recordType', + label: '记录类型', + }, +]; + +export const columns: VxeGridProps['columns'] = [ + // { type: 'checkbox', width: 60 }, + { + title: '序号', + field: 'id', + slots: { + default: ({ rowIndex }) => { + return (rowIndex + 1).toString(); + }, + }, + width: 60, + }, + { + title: '订单编号', + field: 'orderId', + width: 100, + }, + { + title: '车场名称', + field: 'plName', + width: 100, + }, + { + title: '停车类型', + field: 'carBusiType', + slots: { + default: ({ row }) => { + return renderDict(row.deviceType, 'wy_txjlsblb'); + }, + }, + width: 100, + }, + { + title: '车牌号', + field: 'carNumber', + width: 100, + }, + { + title: '车辆类型', + field: 'carType', + width: 100, + }, + { + title: '应收', + field: 'orderTotalFee', + width: 100, + }, + { + title: '实收', + field: 'orderActFee', + slots: { + default: ({ row }) => { + return renderDict(row.cardType, 'wy_txjlmklb'); + }, + }, + width: 100, + }, + { + title: '停车时长', + field: 'parkingDuration', + slots: { + default: ({ row }) => { + return renderDict(row.gatewayType, 'wy_txjlcrlx'); + }, + }, + width: 100, + }, + { + title: '进场时间', + field: 'parkInTime', + width: 100, + }, + { + title: '出场时间', + field: 'parkOutTime', + slots: { + default: ({ row }) => { + return renderDict(row.recordType, 'wy_txjllx'); + }, + }, + width: 100, + }, + { + title: '备注', + field: 'remark', + slots: { + default: ({ row }) => { + return renderDict(row.recordType, 'wy_txjllx'); + }, + }, + width: 100, + }, + { + title: '状态', + field: 'parkState', + slots: { + default: ({ row }) => { + return renderDict(row.recordType, 'wy_txjllx'); + }, + }, + width: 100, + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + minWidth: 180, + }, +]; diff --git a/apps/web-antd/src/views/property/resident/carPassRecordManagement/index.vue b/apps/web-antd/src/views/property/resident/carPassRecordManagement/index.vue new file mode 100644 index 00000000..6ef5c95b --- /dev/null +++ b/apps/web-antd/src/views/property/resident/carPassRecordManagement/index.vue @@ -0,0 +1,127 @@ + + + diff --git a/apps/web-antd/src/views/property/resident/carPassRecordManagement/record-detail-modal.vue b/apps/web-antd/src/views/property/resident/carPassRecordManagement/record-detail-modal.vue new file mode 100644 index 00000000..e69de29b diff --git a/apps/web-antd/src/views/property/resident/personPassRecordManagement/data.ts b/apps/web-antd/src/views/property/resident/personPassRecordManagement/data.ts new file mode 100644 index 00000000..4123fa62 --- /dev/null +++ b/apps/web-antd/src/views/property/resident/personPassRecordManagement/data.ts @@ -0,0 +1,131 @@ +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: 'actionTime', + label: '通行时间', + }, + { + component: 'Input', + fieldName: 'customerName', + label: '人员姓名', + }, + { + component: 'Input', + fieldName: 'organFullPath', + label: '组织机构', + }, + { + component: 'Input', + fieldName: 'doorName', + label: '门/电梯名称', + }, + { + component: 'Input', + fieldName: 'deviceName', + label: '设备名称', + }, + { + component: 'Select', + componentProps: { + options: getDictOptions('wy_txjllx'), + }, + fieldName: 'recordType', + label: '记录类型', + }, +]; + +export const columns: VxeGridProps['columns'] = [ + // { type: 'checkbox', width: 60 }, + { + title: '序号', + field: 'id', + slots: { + default: ({ rowIndex }) => { + return (rowIndex + 1).toString(); + }, + }, + width: 60, + }, + { + title: '门/电梯名称', + field: 'doorName', + width: 120, + }, + { + title: '设备名称', + field: 'deviceName', + width: 150, + }, + { + title: '设备类别', + field: 'deviceType', + slots: { + default: ({ row }) => { + return renderDict(row.deviceType, 'wy_txjlsblb'); + }, + }, + width: 150, + }, + { + title: '读头名称', + field: 'readerName', + width: 100, + }, + { + title: '人员姓名', + field: 'customerName', + width: 150, + }, + { + title: '所属组织', + field: 'organFullPath', + width: 150, + }, + { + title: '门卡类别', + field: 'cardType', + slots: { + default: ({ row }) => { + return renderDict(row.cardType, 'wy_txjlmklb'); + }, + }, + width: 100, + }, + { + title: '出入类型', + field: 'gatewayType', + slots: { + default: ({ row }) => { + return renderDict(row.gatewayType, 'wy_txjlcrlx'); + }, + }, + width: 100, + }, + { + title: '通行时间', + field: 'actionTime', + width: 150, + }, + { + title: '记录类型', + field: 'recordType', + slots: { + default: ({ row }) => { + return renderDict(row.recordType, 'wy_txjllx'); + }, + }, + width: 100, + }, + { + field: '', + fixed: 'right', + slots: { default: 'action' }, + title: '抓拍图片', + minWidth: 180, + }, +]; diff --git a/apps/web-antd/src/views/property/resident/personPassRecordManagement/index.vue b/apps/web-antd/src/views/property/resident/personPassRecordManagement/index.vue new file mode 100644 index 00000000..f446c862 --- /dev/null +++ b/apps/web-antd/src/views/property/resident/personPassRecordManagement/index.vue @@ -0,0 +1,102 @@ + + + diff --git a/apps/web-antd/src/views/property/resident/personPassRecordManagement/record-detail-modal.vue b/apps/web-antd/src/views/property/resident/personPassRecordManagement/record-detail-modal.vue new file mode 100644 index 00000000..3a17c2ab --- /dev/null +++ b/apps/web-antd/src/views/property/resident/personPassRecordManagement/record-detail-modal.vue @@ -0,0 +1,157 @@ + + + + +