diff --git a/apps/web-antd/src/api/property/clean_order/model.d.ts b/apps/web-antd/src/api/property/clean_order/model.d.ts index 9715d000..74c0f48d 100644 --- a/apps/web-antd/src/api/property/clean_order/model.d.ts +++ b/apps/web-antd/src/api/property/clean_order/model.d.ts @@ -70,7 +70,7 @@ export interface Clean_orderVO { * 联系电话 */ phone: string; - + relationList: any[]; } export interface Clean_orderForm extends BaseEntity { diff --git a/apps/web-antd/src/api/property/inspectionManagement/inspectionItem/index.ts b/apps/web-antd/src/api/property/inspectionManagement/inspectionItem/index.ts new file mode 100644 index 00000000..1ce5f52a --- /dev/null +++ b/apps/web-antd/src/api/property/inspectionManagement/inspectionItem/index.ts @@ -0,0 +1,61 @@ +import type { InspectionItemVO, InspectionItemForm, InspectionItemQuery } from './model'; + +import type { ID, IDS } from '#/api/common'; +import type { PageResult } from '#/api/common'; + +import { commonExport } from '#/api/helper'; +import { requestClient } from '#/api/request'; + +/** +* 查询巡检项目列表 +* @param params +* @returns 巡检项目列表 +*/ +export function inspectionItemList(params?: InspectionItemQuery) { + return requestClient.get>('/property/inspectionItem/list', { params }); +} + +/** + * 导出巡检项目列表 + * @param params + * @returns 巡检项目列表 + */ +export function inspectionItemExport(params?: InspectionItemQuery) { + return commonExport('/property/inspectionItem/export', params ?? {}); +} + +/** + * 查询巡检项目详情 + * @param id id + * @returns 巡检项目详情 + */ +export function inspectionItemInfo(id: ID) { + return requestClient.get(`/property/inspectionItem/${id}`); +} + +/** + * 新增巡检项目 + * @param data + * @returns void + */ +export function inspectionItemAdd(data: InspectionItemForm) { + return requestClient.postWithMsg('/property/inspectionItem', data); +} + +/** + * 更新巡检项目 + * @param data + * @returns void + */ +export function inspectionItemUpdate(data: InspectionItemForm) { + return requestClient.putWithMsg('/property/inspectionItem', data); +} + +/** + * 删除巡检项目 + * @param id id + * @returns void + */ +export function inspectionItemRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/inspectionItem/${id}`); +} diff --git a/apps/web-antd/src/api/property/inspectionManagement/inspectionItem/model.d.ts b/apps/web-antd/src/api/property/inspectionManagement/inspectionItem/model.d.ts new file mode 100644 index 00000000..358c473d --- /dev/null +++ b/apps/web-antd/src/api/property/inspectionManagement/inspectionItem/model.d.ts @@ -0,0 +1,49 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface InspectionItemVO { + /** + * 主键id + */ + id: string | number; + + /** + * 项目名称 + */ + itemName: string; + + /** + * 备注 + */ + remark: string; + +} + +export interface InspectionItemForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 项目名称 + */ + itemName?: string; + + /** + * 备注 + */ + remark?: string; + +} + +export interface InspectionItemQuery extends PageQuery { + /** + * 项目名称 + */ + itemName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/meetbooking/index.ts b/apps/web-antd/src/api/property/meetbooking/index.ts index 9e0b4e02..41c3e37b 100644 --- a/apps/web-antd/src/api/property/meetbooking/index.ts +++ b/apps/web-antd/src/api/property/meetbooking/index.ts @@ -1,4 +1,4 @@ -import type { MeetbookingVO, MeetbookingForm, MeetbookingQuery } from './model'; +import type { MeetbookingVO, MeetbookingForm, MeetbookingQuery, MeetbookingAppointmentQuery } from './model'; import type { ID, IDS } from '#/api/common'; import type { PageResult } from '#/api/common'; diff --git a/apps/web-antd/src/api/property/meetbooking/model.d.ts b/apps/web-antd/src/api/property/meetbooking/model.d.ts index 142e72e2..213c7266 100644 --- a/apps/web-antd/src/api/property/meetbooking/model.d.ts +++ b/apps/web-antd/src/api/property/meetbooking/model.d.ts @@ -222,3 +222,4 @@ export interface MeetbookingQuery extends PageQuery { */ params?: any; } + diff --git a/apps/web-antd/src/api/property/reportStatistics/index.ts b/apps/web-antd/src/api/property/reportStatistics/index.ts index 1b90ef0b..d562372c 100644 --- a/apps/web-antd/src/api/property/reportStatistics/index.ts +++ b/apps/web-antd/src/api/property/reportStatistics/index.ts @@ -68,3 +68,12 @@ export function countAchieved() { export function countByCusScore() { return requestClient.get('/property/orderMaintain/countByCusScore'); } + + /** + * 统计下单客户总数 + * @param + * @returns void + */ + export function countCustomers() { + return requestClient.get('/property/rentalOrder/countCustomers'); + } diff --git a/apps/web-antd/src/api/property/roomBooking/conferenceView/index.ts b/apps/web-antd/src/api/property/roomBooking/conferenceView/index.ts new file mode 100644 index 00000000..4ab4c243 --- /dev/null +++ b/apps/web-antd/src/api/property/roomBooking/conferenceView/index.ts @@ -0,0 +1,21 @@ +import type { getAppointmentListByDateQuery,getAppointmentListByIdQuery } from './model'; + +import type { PageResult } from '#/api/common'; +import { requestClient } from '#/api/request'; + +/** +* 按照日期查询已预约会议预约记录列表 +* @param params +* @returns 会议预约列表 +*/ +export function getAppointmentListByDate(params?: getAppointmentListByDateQuery) { + return requestClient.get('/property/meetbooking/appointment-list', { params }); +} +/** +* 按照会议室Id查询已预约会议预约记录列表 +* @param params +* @returns 会议预约列表 +*/ +export function getAppointmentListBymeetId(params?: getAppointmentListByIdQuery) { + return requestClient.get('/property/meetbooking/meet-appointment-list', { params }); +} \ No newline at end of file diff --git a/apps/web-antd/src/api/property/roomBooking/conferenceView/model.d.ts b/apps/web-antd/src/api/property/roomBooking/conferenceView/model.d.ts new file mode 100644 index 00000000..9ae38093 --- /dev/null +++ b/apps/web-antd/src/api/property/roomBooking/conferenceView/model.d.ts @@ -0,0 +1,12 @@ +export interface getAppointmentListByDateQuery { + /** + * 日期 + */ + appointmentDate?: string; +} +export interface getAppointmentListByIdQuery { + /** + * 会议室id + */ + meetId?: string; +} diff --git a/apps/web-antd/src/api/property/roomBooking/index.ts b/apps/web-antd/src/api/property/roomBooking/index.ts index 746b8244..2619975f 100644 --- a/apps/web-antd/src/api/property/roomBooking/index.ts +++ b/apps/web-antd/src/api/property/roomBooking/index.ts @@ -1,4 +1,4 @@ -import type { RoomBookingVO, RoomBookingForm, RoomBookingQuery } from './model'; +import type { RoomBookingVO, RoomBookingForm, RoomBookingQuery,GetMeetNameVO } from './model'; import type { ID, IDS } from '#/api/common'; import type { PageResult } from '#/api/common'; @@ -6,6 +6,15 @@ import type { PageResult } from '#/api/common'; import { commonExport } from '#/api/helper'; import { requestClient } from '#/api/request'; +/** +* 查询会议室名称列表 +* @param getMeetName 后端约定传'getMeetName' +* @returns 会议室名称列表 +*/ +export function getMeetName() { + return requestClient.get>(`/property/enum-fetcher/enum-values/${'getMeetName'}`); +} + /** * 查询会议管理列表 * @param params @@ -59,3 +68,11 @@ export function roomBookingUpdate(data: RoomBookingForm) { export function roomBookingRemove(id: ID | IDS) { return requestClient.deleteWithMsg(`/property/roomBooking/${id}`); } +/** +* 按照日期查询已预约会议预约记录列表 +* @param params +* @returns 会议预约列表 +*/ +export function meetbookingAppointmentList(params?: MeetbookingAppointmentQuery) { + return requestClient.get>('/property/meetbooking/appointment-list', { params }); +} \ No newline at end of file diff --git a/apps/web-antd/src/api/property/roomBooking/model.d.ts b/apps/web-antd/src/api/property/roomBooking/model.d.ts index cf146008..380f36bd 100644 --- a/apps/web-antd/src/api/property/roomBooking/model.d.ts +++ b/apps/web-antd/src/api/property/roomBooking/model.d.ts @@ -1,5 +1,9 @@ import type { PageQuery, BaseEntity } from '#/api/common'; +export interface GetMeetNameVO { + id: string; + name: string; +} export interface RoomBookingVO { /** * 会议室id diff --git a/apps/web-antd/src/api/sis/elevatorInfo/index.ts b/apps/web-antd/src/api/sis/elevatorInfo/index.ts new file mode 100644 index 00000000..83501334 --- /dev/null +++ b/apps/web-antd/src/api/sis/elevatorInfo/index.ts @@ -0,0 +1,61 @@ +import type { ElevatorInfoVO, ElevatorInfoForm, ElevatorInfoQuery } from './model'; + +import type { ID, IDS } from '#/api/common'; +import type { PageResult } from '#/api/common'; + +import { commonExport } from '#/api/helper'; +import { requestClient } from '#/api/request'; + +/** +* 查询电梯基本信息列表 +* @param params +* @returns 电梯基本信息列表 +*/ +export function elevatorInfoList(params?: ElevatorInfoQuery) { + return requestClient.get>('/sis/elevatorInfo/list', { params }); +} + +/** + * 导出电梯基本信息列表 + * @param params + * @returns 电梯基本信息列表 + */ +export function elevatorInfoExport(params?: ElevatorInfoQuery) { + return commonExport('/sis/elevatorInfo/export', params ?? {}); +} + +/** + * 查询电梯基本信息详情 + * @param elevatorId id + * @returns 电梯基本信息详情 + */ +export function elevatorInfoInfo(elevatorId: ID) { + return requestClient.get(`/sis/elevatorInfo/${elevatorId}`); +} + +/** + * 新增电梯基本信息 + * @param data + * @returns void + */ +export function elevatorInfoAdd(data: ElevatorInfoForm) { + return requestClient.postWithMsg('/sis/elevatorInfo', data); +} + +/** + * 更新电梯基本信息 + * @param data + * @returns void + */ +export function elevatorInfoUpdate(data: ElevatorInfoForm) { + return requestClient.putWithMsg('/sis/elevatorInfo', data); +} + +/** + * 删除电梯基本信息 + * @param elevatorId id + * @returns void + */ +export function elevatorInfoRemove(elevatorId: ID | IDS) { + return requestClient.deleteWithMsg(`/sis/elevatorInfo/${elevatorId}`); +} diff --git a/apps/web-antd/src/api/sis/elevatorInfo/model.d.ts b/apps/web-antd/src/api/sis/elevatorInfo/model.d.ts new file mode 100644 index 00000000..f9fe457a --- /dev/null +++ b/apps/web-antd/src/api/sis/elevatorInfo/model.d.ts @@ -0,0 +1,294 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface ElevatorInfoVO { + /** + * + */ + elevatorId: string | number; + + /** + * 电梯编号 + */ + elevatorCode: string; + + /** + * 电梯名称 + */ + elevatorName: string; + + /** + * 安装位置 + */ + location: string; + + /** + * 品牌 + */ + brand: string; + + /** + * 型号 + */ + model: string; + + /** + * 生产日期 + */ + manufactureDate: string; + + /** + * 安装日期 + */ + installationDate: string; + + /** + * 最大载重(kg) + */ + maxLoad: number; + + /** + * 服务楼层数 + */ + floorsServed: number; + + /** + * 维保公司 + */ + maintenanceCompany: string; + + /** + * 维保电话 + */ + maintenancePhone: string; + + /** + * 上次年检日期 + */ + lastInspectionDate: string; + + /** + * 下次年检日期 + */ + nextInspectionDate: string; + + /** + * 梯控厂商 + */ + controlFactory: string; + + /** + * 梯控设备ip + */ + controlIp: string; + + /** + * 梯控设备编码 + */ + controlPort: number; + + /** + * 梯控设备登录账号 + */ + controlAccount: string; + + /** + * 梯控设备登录密码 + */ + controlPwd: string; + +} + +export interface ElevatorInfoForm extends BaseEntity { + /** + * + */ + elevatorId?: string | number; + + /** + * 电梯编号 + */ + elevatorCode?: string; + + /** + * 电梯名称 + */ + elevatorName?: string; + + /** + * 安装位置 + */ + location?: string; + + /** + * 品牌 + */ + brand?: string; + + /** + * 型号 + */ + model?: string; + + /** + * 生产日期 + */ + manufactureDate?: string; + + /** + * 安装日期 + */ + installationDate?: string; + + /** + * 最大载重(kg) + */ + maxLoad?: number; + + /** + * 服务楼层数 + */ + floorsServed?: number; + + /** + * 维保公司 + */ + maintenanceCompany?: string; + + /** + * 维保电话 + */ + maintenancePhone?: string; + + /** + * 上次年检日期 + */ + lastInspectionDate?: string; + + /** + * 下次年检日期 + */ + nextInspectionDate?: string; + + /** + * 梯控厂商 + */ + controlFactory?: string; + + /** + * 梯控设备ip + */ + controlIp?: string; + + /** + * 梯控设备编码 + */ + controlPort?: number; + + /** + * 梯控设备登录账号 + */ + controlAccount?: string; + + /** + * 梯控设备登录密码 + */ + controlPwd?: string; + +} + +export interface ElevatorInfoQuery extends PageQuery { + /** + * 电梯编号 + */ + elevatorCode?: string; + + /** + * 电梯名称 + */ + elevatorName?: string; + + /** + * 安装位置 + */ + location?: string; + + /** + * 品牌 + */ + brand?: string; + + /** + * 型号 + */ + model?: string; + + /** + * 生产日期 + */ + manufactureDate?: string; + + /** + * 安装日期 + */ + installationDate?: string; + + /** + * 最大载重(kg) + */ + maxLoad?: number; + + /** + * 服务楼层数 + */ + floorsServed?: number; + + /** + * 维保公司 + */ + maintenanceCompany?: string; + + /** + * 维保电话 + */ + maintenancePhone?: string; + + /** + * 上次年检日期 + */ + lastInspectionDate?: string; + + /** + * 下次年检日期 + */ + nextInspectionDate?: string; + + /** + * 梯控厂商 + */ + controlFactory?: string; + + /** + * 梯控设备ip + */ + controlIp?: string; + + /** + * 梯控设备编码 + */ + controlPort?: number; + + /** + * 梯控设备登录账号 + */ + controlAccount?: string; + + /** + * 梯控设备登录密码 + */ + controlPwd?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/assets/222.gif b/apps/web-antd/src/assets/222.gif new file mode 100644 index 00000000..33c38c41 Binary files /dev/null and b/apps/web-antd/src/assets/222.gif differ diff --git a/apps/web-antd/src/assets/from.png b/apps/web-antd/src/assets/from.png new file mode 100644 index 00000000..ff076013 Binary files /dev/null and b/apps/web-antd/src/assets/from.png differ diff --git a/apps/web-antd/src/assets/juxing.png b/apps/web-antd/src/assets/juxing.png new file mode 100644 index 00000000..da084f61 Binary files /dev/null and b/apps/web-antd/src/assets/juxing.png differ diff --git a/apps/web-antd/src/assets/login.png b/apps/web-antd/src/assets/login.png new file mode 100644 index 00000000..5052a9b1 Binary files /dev/null and b/apps/web-antd/src/assets/login.png differ diff --git a/apps/web-antd/src/assets/mima.png b/apps/web-antd/src/assets/mima.png new file mode 100644 index 00000000..b831e62d Binary files /dev/null and b/apps/web-antd/src/assets/mima.png differ diff --git a/apps/web-antd/src/assets/my.png b/apps/web-antd/src/assets/my.png new file mode 100644 index 00000000..82c4889e Binary files /dev/null and b/apps/web-antd/src/assets/my.png differ diff --git a/apps/web-antd/src/assets/navigation.png b/apps/web-antd/src/assets/navigation.png new file mode 100644 index 00000000..c49e2642 Binary files /dev/null and b/apps/web-antd/src/assets/navigation.png differ diff --git a/apps/web-antd/src/assets/return.png b/apps/web-antd/src/assets/return.png new file mode 100644 index 00000000..4e2b8634 Binary files /dev/null and b/apps/web-antd/src/assets/return.png differ diff --git a/apps/web-antd/src/assets/shine-lines.png b/apps/web-antd/src/assets/shine-lines.png new file mode 100644 index 00000000..400e4a25 Binary files /dev/null and b/apps/web-antd/src/assets/shine-lines.png differ diff --git a/apps/web-antd/src/assets/shine.png b/apps/web-antd/src/assets/shine.png new file mode 100644 index 00000000..2def48d2 Binary files /dev/null and b/apps/web-antd/src/assets/shine.png differ diff --git a/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts b/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts index b6a1479f..8c47da51 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts @@ -2,6 +2,10 @@ import type {FormSchemaGetter} from '#/adapter/form'; import type {VxeGridProps} from '#/adapter/vxe-table'; import {renderDict} from "#/utils/render"; import {getDictOptions} from "#/utils/dict"; +import {h} from "vue"; +import {Rate} from "ant-design-vue"; +import type {Dayjs} from "dayjs"; +import dayjs from "dayjs"; export const querySchema: FormSchemaGetter = () => [ @@ -15,12 +19,6 @@ export const querySchema: FormSchemaGetter = () => [ fieldName: 'orderName', label: '工单名称', }, - { - component: 'Select', - componentProps: {}, - fieldName: 'type', - label: '工单类型', - }, { component: 'Select', componentProps: { @@ -45,12 +43,12 @@ export const columns: VxeGridProps['columns'] = [ }, { title: '工单类型', - field: 'type', - slots: { - default: ({row}) => { - return renderDict(row.type, 'wy_gdlx'); - }, - }, + field: 'typeName', + minWidth: 150, + }, + { + title: '派单时间', + field: 'dispatchTime', width: 100, }, { @@ -63,26 +61,6 @@ export const columns: VxeGridProps['columns'] = [ }, width: 100, }, - { - title: '派单时间', - field: 'dispatchTime', - width: 100, - }, - { - title: '发起人姓名', - field: 'initiatorName', - width: 100, - }, - { - title: '发起人手机号', - field: 'initiatorPhone', - width: 100, - }, - { - title: '处理人姓名', - field: 'handler', - width: 100, - }, { title: '地址', field: 'location', @@ -101,12 +79,26 @@ export const columns: VxeGridProps['columns'] = [ { title: '评价', field: 'serviceEvalua', - width: 100, + width: 180, + slots: { + default: ({row}) => { + return h(Rate, { + value: row.serviceEvalua || 0, + disabled: true, + }); + }, + }, + }, { title: '是否超时', field: 'isTimeOut', width: 100, + slots: { + default: ({row}) => { + return renderDict(row.status, 'wy_sf'); + }, + }, }, { field: 'action', @@ -136,7 +128,7 @@ export const modalSchema: FormSchemaGetter = () => [ { label: '工单类型', fieldName: 'type', - component: 'Select', + component: 'ApiSelect', componentProps: {}, rules: 'selectRequired', }, @@ -158,6 +150,7 @@ export const modalSchema: FormSchemaGetter = () => [ showTime: true, format: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'YYYY-MM-DD HH:mm:ss', + disabledDate: disabledDate }, rules: 'selectRequired', }, @@ -169,11 +162,6 @@ export const modalSchema: FormSchemaGetter = () => [ rules: 'selectRequired', }, - // { - // label: '发起人手机号', - // fieldName: 'initiatorPhone', - // component: 'Input', - // }, { label: '处理人', fieldName: 'handler', @@ -228,3 +216,6 @@ export const modalSchema: FormSchemaGetter = () => [ rules: 'selectRequired', }, ]; +const disabledDate = (current: Dayjs) => { + return current && current < dayjs().endOf('day'); +}; diff --git a/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue b/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue index 0f88e535..a3fa1dfd 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue @@ -1,8 +1,8 @@