diff --git a/apps/web-antd/src/api/property/businessManagement/workOrders/index.ts b/apps/web-antd/src/api/property/businessManagement/workOrders/index.ts new file mode 100644 index 00000000..d1148daa --- /dev/null +++ b/apps/web-antd/src/api/property/businessManagement/workOrders/index.ts @@ -0,0 +1,61 @@ +import type { WorkOrdersVO, WorkOrdersForm, WorkOrdersQuery } 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 workOrdersList(params?: WorkOrdersQuery) { + return requestClient.get>('/property/workOrders/list', { params }); +} + +/** + * 导出工单处理列表 + * @param params + * @returns 工单处理列表 + */ +export function workOrdersExport(params?: WorkOrdersQuery) { + return commonExport('/property/workOrders/export', params ?? {}); +} + +/** + * 查询工单处理详情 + * @param id id + * @returns 工单处理详情 + */ +export function workOrdersInfo(id: ID) { + return requestClient.get(`/property/workOrders/${id}`); +} + +/** + * 新增工单处理 + * @param data + * @returns void + */ +export function workOrdersAdd(data: WorkOrdersForm) { + return requestClient.postWithMsg('/property/workOrders', data); +} + +/** + * 更新工单处理 + * @param data + * @returns void + */ +export function workOrdersUpdate(data: WorkOrdersForm) { + return requestClient.putWithMsg('/property/workOrders', data); +} + +/** + * 删除工单处理 + * @param id id + * @returns void + */ +export function workOrdersRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/workOrders/${id}`); +} diff --git a/apps/web-antd/src/api/property/businessManagement/workOrders/model.d.ts b/apps/web-antd/src/api/property/businessManagement/workOrders/model.d.ts new file mode 100644 index 00000000..3498c884 --- /dev/null +++ b/apps/web-antd/src/api/property/businessManagement/workOrders/model.d.ts @@ -0,0 +1,219 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface WorkOrdersVO { + /** + * id + */ + id: string | number; + + /** + * 工单编号 + */ + orderNo: string; + + /** + * 工单名称 + */ + orderName: string; + + /** + * 工单类型 + */ + type: number; + + /** + * 状态 + */ + status: number; + + /** + * 派单时间 + */ + dispatchTime: string; + + /** + * 发起人姓名 + */ + initiatorName: string; + + /** + * 发起人手机号 + */ + initiatorPhone: string; + + /** + * 处理人姓名 + */ + handler: string; + + /** + * 地址 + */ + location: string; + + /** + * 计划完成时间 + */ + planCompleTime: string; + + /** + * 完成时间 + */ + compleTime: string; + + /** + * 评价 + */ + serviceEvalua: string; + + /** + * 是否超时 + */ + isTimeOut: number; + +} + +export interface WorkOrdersForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 工单编号 + */ + orderNo?: string; + + /** + * 工单名称 + */ + orderName?: string; + + /** + * 工单类型 + */ + type?: number; + + /** + * 状态 + */ + status?: number; + + /** + * 派单时间 + */ + dispatchTime?: string; + + /** + * 发起人姓名 + */ + initiatorName?: string; + + /** + * 发起人手机号 + */ + initiatorPhone?: string; + + /** + * 处理人姓名 + */ + handler?: string; + + /** + * 地址 + */ + location?: string; + + /** + * 计划完成时间 + */ + planCompleTime?: string; + + /** + * 完成时间 + */ + compleTime?: string; + + /** + * 评价 + */ + serviceEvalua?: string; + + /** + * 是否超时 + */ + isTimeOut?: number; + +} + +export interface WorkOrdersQuery extends PageQuery { + /** + * 工单编号 + */ + orderNo?: string; + + /** + * 工单名称 + */ + orderName?: string; + + /** + * 工单类型 + */ + type?: number; + + /** + * 状态 + */ + status?: number; + + /** + * 派单时间 + */ + dispatchTime?: string; + + /** + * 发起人姓名 + */ + initiatorName?: string; + + /** + * 发起人手机号 + */ + initiatorPhone?: string; + + /** + * 处理人姓名 + */ + handler?: string; + + /** + * 地址 + */ + location?: string; + + /** + * 计划完成时间 + */ + planCompleTime?: string; + + /** + * 完成时间 + */ + compleTime?: string; + + /** + * 评价 + */ + serviceEvalua?: string; + + /** + * 是否超时 + */ + isTimeOut?: number; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/businessManagement/workOrdersType/index.ts b/apps/web-antd/src/api/property/businessManagement/workOrdersType/index.ts new file mode 100644 index 00000000..7350e6cd --- /dev/null +++ b/apps/web-antd/src/api/property/businessManagement/workOrdersType/index.ts @@ -0,0 +1,61 @@ +import type { WorkOrdersTypeVO, WorkOrdersTypeForm, WorkOrdersTypeQuery } 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 workOrdersTypeList(params?: WorkOrdersTypeQuery) { + return requestClient.get>('/property/workOrdersType/list', { params }); +} + +/** + * 导出工单类型管理列表 + * @param params + * @returns 工单类型管理列表 + */ +export function workOrdersTypeExport(params?: WorkOrdersTypeQuery) { + return commonExport('/property/workOrdersType/export', params ?? {}); +} + +/** + * 查询工单类型管理详情 + * @param id id + * @returns 工单类型管理详情 + */ +export function workOrdersTypeInfo(id: ID) { + return requestClient.get(`/property/workOrdersType/${id}`); +} + +/** + * 新增工单类型管理 + * @param data + * @returns void + */ +export function workOrdersTypeAdd(data: WorkOrdersTypeForm) { + return requestClient.postWithMsg('/property/workOrdersType', data); +} + +/** + * 更新工单类型管理 + * @param data + * @returns void + */ +export function workOrdersTypeUpdate(data: WorkOrdersTypeForm) { + return requestClient.putWithMsg('/property/workOrdersType', data); +} + +/** + * 删除工单类型管理 + * @param id id + * @returns void + */ +export function workOrdersTypeRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/workOrdersType/${id}`); +} diff --git a/apps/web-antd/src/api/property/businessManagement/workOrdersType/model.d.ts b/apps/web-antd/src/api/property/businessManagement/workOrdersType/model.d.ts new file mode 100644 index 00000000..2cde0610 --- /dev/null +++ b/apps/web-antd/src/api/property/businessManagement/workOrdersType/model.d.ts @@ -0,0 +1,114 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface WorkOrdersTypeVO { + /** + * id + */ + id: string | number; + + /** + * 工单类型编号 + */ + orderTypeNo: string; + + /** + * 工单类型名称 + */ + orderTypeName: string; + + /** + * 运作模式 + */ + operationMode: string; + + /** + * 排序值 + */ + sort: number; + + /** + * 累计工单数量 + */ + number: number; + + /** + * 是否支持转单(0支持,1不支持) + */ + isTransfers: number; + +} + +export interface WorkOrdersTypeForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 工单类型编号 + */ + orderTypeNo?: string; + + /** + * 工单类型名称 + */ + orderTypeName?: string; + + /** + * 运作模式 + */ + operationMode?: string; + + /** + * 排序值 + */ + sort?: number; + + /** + * 累计工单数量 + */ + number?: number; + + /** + * 是否支持转单(0支持,1不支持) + */ + isTransfers?: number; + +} + +export interface WorkOrdersTypeQuery extends PageQuery { + /** + * 工单类型编号 + */ + orderTypeNo?: string; + + /** + * 工单类型名称 + */ + orderTypeName?: string; + + /** + * 运作模式 + */ + operationMode?: string; + + /** + * 排序值 + */ + sort?: number; + + /** + * 累计工单数量 + */ + number?: number; + + /** + * 是否支持转单(0支持,1不支持) + */ + isTransfers?: number; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/roomBooking/conferenceAddServices/index.ts b/apps/web-antd/src/api/property/roomBooking/conferenceAddServices/index.ts index 7f57a6f4..4565ecd3 100644 --- a/apps/web-antd/src/api/property/roomBooking/conferenceAddServices/index.ts +++ b/apps/web-antd/src/api/property/roomBooking/conferenceAddServices/index.ts @@ -15,7 +15,7 @@ export function attachList(params?: AttachQuery) { return requestClient.get>('/property/attach/list', { params }); } export function attachListAll() { - return requestClient.get>('/property/attach/attachList', ); + return requestClient.get('/property/attach/attachList', ); } /** diff --git a/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts b/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts new file mode 100644 index 00000000..b6a1479f --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts @@ -0,0 +1,230 @@ +import type {FormSchemaGetter} from '#/adapter/form'; +import type {VxeGridProps} from '#/adapter/vxe-table'; +import {renderDict} from "#/utils/render"; +import {getDictOptions} from "#/utils/dict"; + + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'orderNo', + label: '工单编号', + }, + { + component: 'Input', + fieldName: 'orderName', + label: '工单名称', + }, + { + component: 'Select', + componentProps: {}, + fieldName: 'type', + label: '工单类型', + }, + { + component: 'Select', + componentProps: { + options: getDictOptions('wy_gdclzt'), + }, + fieldName: 'status', + label: '状态', + }, +]; + +export const columns: VxeGridProps['columns'] = [ + {type: 'checkbox', width: 60}, + { + title: '工单编号', + field: 'orderNo', + width: 180, + }, + { + title: '工单名称', + field: 'orderName', + minWidth: 180, + }, + { + title: '工单类型', + field: 'type', + slots: { + default: ({row}) => { + return renderDict(row.type, 'wy_gdlx'); + }, + }, + width: 100, + }, + { + title: '状态', + field: 'status', + slots: { + default: ({row}) => { + return renderDict(row.status, 'wy_gdclzt'); + }, + }, + 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', + width: 100, + }, + { + title: '计划完成时间', + field: 'planCompleTime', + width: 100, + }, + { + title: '完成时间', + field: 'compleTime', + width: 100, + }, + { + title: '评价', + field: 'serviceEvalua', + width: 100, + }, + { + title: '是否超时', + field: 'isTimeOut', + width: 100, + }, + { + 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: '工单名称', + fieldName: 'orderName', + component: 'Input', + rules: 'required', + }, + { + label: '工单类型', + fieldName: 'type', + component: 'Select', + componentProps: {}, + rules: 'selectRequired', + }, + // { + // label: '状态', + // fieldName: 'status', + // component: 'RadioGroup', + // componentProps: { + // buttonStyle: 'solid', + // optionType: 'button', + // }, + // rules: 'selectRequired', + // }, + { + label: '派单时间', + fieldName: 'dispatchTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'selectRequired', + }, + { + label: '发起人', + fieldName: 'initiatorName', + component: 'ApiSelect', + formItemClass: 'col-span-2', + rules: 'selectRequired', + + }, + // { + // label: '发起人手机号', + // fieldName: 'initiatorPhone', + // component: 'Input', + // }, + { + label: '处理人', + fieldName: 'handler', + component: 'ApiSelect', + formItemClass: 'col-span-2', + rules: 'selectRequired', + }, + { + label: '具体位置', + fieldName: 'location', + component: 'Input', + formItemClass: 'col-span-2', + rules: 'selectRequired', + }, + { + label: '计划完成时间', + fieldName: 'planCompleTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + labelWidth: 110, + rules: 'selectRequired', + }, + { + label: '完成时间', + fieldName: 'compleTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'selectRequired', + }, + { + label: '评价', + fieldName: 'serviceEvalua', + component: 'Rate', + rules: 'required', + }, + { + label: '是否超时', + fieldName: 'isTimeOut', + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: getDictOptions('wy_sf'), + }, + rules: 'selectRequired', + }, +]; diff --git a/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue b/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue new file mode 100644 index 00000000..0f88e535 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue @@ -0,0 +1,168 @@ + + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrders/workOrders-modal.vue b/apps/web-antd/src/views/property/businessManagement/workOrders/workOrders-modal.vue new file mode 100644 index 00000000..86043c1f --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/workOrders-modal.vue @@ -0,0 +1,138 @@ + + + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrdersType/data.ts b/apps/web-antd/src/views/property/businessManagement/workOrdersType/data.ts new file mode 100644 index 00000000..9ca14207 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrdersType/data.ts @@ -0,0 +1,104 @@ +import type { FormSchemaGetter } from '#/adapter/form'; +import type { VxeGridProps } from '#/adapter/vxe-table'; + + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'orderTypeNo', + label: '类型编号', + }, + { + component: 'Input', + fieldName: 'orderTypeName', + label: '类型名称', + }, + { + component: 'Select', + componentProps: { + }, + fieldName: 'operationMode', + label: '运作模式', + }, +]; + +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '类型编号', + field: 'orderTypeNo', + }, + { + title: '类型名称', + field: 'orderTypeName', + }, + { + title: '运作模式', + field: 'operationMode', + }, + { + title: '排序值', + field: 'sort', + }, + { + title: '累计工单数量', + field: 'number', + }, + { + title: '是否支持转单', + field: 'isTransfers', + }, + { + 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: '类型编号', + fieldName: 'orderTypeNo', + component: 'Input', + }, + { + label: '类型名称', + fieldName: 'orderTypeName', + component: 'Input', + rules: 'required', + }, + { + label: '运作模式', + fieldName: 'operationMode', + component: 'Input', + componentProps: { + }, + rules: 'selectRequired', + }, + { + label: '排序值', + fieldName: 'sort', + component: 'Input', + }, + { + label: '累计工单数量', + fieldName: 'number', + component: 'Input', + }, + { + label: '是否支持转单', + fieldName: 'isTransfers', + component: 'Input', + }, +]; diff --git a/apps/web-antd/src/views/property/businessManagement/workOrdersType/index.vue b/apps/web-antd/src/views/property/businessManagement/workOrdersType/index.vue new file mode 100644 index 00000000..6e44d6c7 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrdersType/index.vue @@ -0,0 +1,166 @@ + + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrdersType/workOrdersType-modal.vue b/apps/web-antd/src/views/property/businessManagement/workOrdersType/workOrdersType-modal.vue new file mode 100644 index 00000000..3d06b1ec --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrdersType/workOrdersType-modal.vue @@ -0,0 +1,101 @@ + + + + diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceReservations/conferenceReservations-modal.vue b/apps/web-antd/src/views/property/roomBooking/conferenceReservations/conferenceReservations-modal.vue index 6a843f7d..11e0c516 100644 --- a/apps/web-antd/src/views/property/roomBooking/conferenceReservations/conferenceReservations-modal.vue +++ b/apps/web-antd/src/views/property/roomBooking/conferenceReservations/conferenceReservations-modal.vue @@ -76,8 +76,8 @@ async function handleConfirm() { } // getValues获取为一个readonly的对象 需要修改必须先深拷贝一次 const data = cloneDeep(await formApi.getValues()); - data.meetId=conferenceSettingDetail.value.id; - data.name=conferenceSettingDetail.value.name; + data.meetId=conferenceSettingDetail.value?.id; + data.name=conferenceSettingDetail.value?.name; if (data.timeSpan && data.timeSpan.length) { data.scheduledStarttime = data.timeSpan[0]?.format("HH:mm"); data.scheduledEndtime = data.timeSpan[1]?.format("HH:mm"); @@ -110,12 +110,7 @@ async function handleOpenChange() { } async function queryAddServices() { - let params = { - pageSize: 1000, - pageNum: 1, - state: 1 - } - const res = await attachListAll(params) + const res = await attachListAll() addServiceList.value = res.map(item => ({ meetAttachId: item.id, projectName: item.projectName, @@ -203,7 +198,7 @@ async function changeProjectNum() {