From 051e7df6c7f3bde7cb95657c10669db0b61228bc Mon Sep 17 00:00:00 2001 From: dev_ljl <2590379346@qq.com> Date: Thu, 10 Jul 2025 16:13:53 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=B7=A1=E6=A3=80=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inspectionItem/index.ts | 61 ++++++ .../inspectionItem/model.d.ts | 49 +++++ .../businessManagement/workOrders/data.ts | 15 +- .../businessManagement/workOrders/index.vue | 39 ++-- .../workOrders/work-orders-detail.vue | 29 +-- .../inspectionItem/data.ts | 59 ++++++ .../inspectionItem/index.vue | 182 ++++++++++++++++++ .../inspectionItem/inspectionItem-modal.vue | 101 ++++++++++ 8 files changed, 510 insertions(+), 25 deletions(-) create mode 100644 apps/web-antd/src/api/property/inspectionManagement/inspectionItem/index.ts create mode 100644 apps/web-antd/src/api/property/inspectionManagement/inspectionItem/model.d.ts create mode 100644 apps/web-antd/src/views/property/inspectionManagement/inspectionItem/data.ts create mode 100644 apps/web-antd/src/views/property/inspectionManagement/inspectionItem/index.vue create mode 100644 apps/web-antd/src/views/property/inspectionManagement/inspectionItem/inspectionItem-modal.vue 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/views/property/businessManagement/workOrders/data.ts b/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts index 2cc814ab..8c47da51 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts @@ -4,6 +4,8 @@ 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 = () => [ @@ -39,6 +41,11 @@ export const columns: VxeGridProps['columns'] = [ field: 'orderName', minWidth: 180, }, + { + title: '工单类型', + field: 'typeName', + minWidth: 150, + }, { title: '派单时间', field: 'dispatchTime', @@ -73,8 +80,8 @@ export const columns: VxeGridProps['columns'] = [ title: '评价', field: 'serviceEvalua', width: 180, - slots:{ - default: ({ row }) => { + slots: { + default: ({row}) => { return h(Rate, { value: row.serviceEvalua || 0, disabled: true, @@ -143,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', }, @@ -208,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 b07e1cc2..a3fa1dfd 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue @@ -35,6 +35,14 @@ const formOptions: VbenFormProps = { }, schema: querySchema(), wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', + handleReset: async () => { + ordersType.value = '0'; + const { formApi, reload } = tableApi; + await formApi.resetForm(); + const formValues = formApi.form.values; + formApi.setLatestSubmissionValues(formValues); + await reload(formValues); + }, }; const gridOptions: VxeGridProps = { @@ -53,6 +61,7 @@ const gridOptions: VxeGridProps = { proxyConfig: { ajax: { query: async ({page}, formValues = {}) => { + formValues.type = ordersType.value=='0'?undefined:ordersType.value; return await workOrdersList({ pageNum: page.currentPage, pageSize: page.pageSize, @@ -85,7 +94,7 @@ function handleAdd() { modalApi.setData({}); modalApi.open(); } -function handleInfo(row) { +function handleInfo(row:any) { detailApi.setData({id:row.id}); detailApi.open(); } @@ -139,21 +148,14 @@ async function queryOrderType() { onMounted(async () => { await queryOrderType() }); - -async function changeOrdersType(val: string) { - await tableApi.formApi.setValues({ - type: val === '0' ? undefined : val, // '0' 表示全部工单,传 undefined 或清除该字段 - }); - console.log(tableApi.formApi.getValues(),'==================') - await tableApi.query() -}