From 420335d7bea4ddc746a7de7ab985313da61c7d23 Mon Sep 17 00:00:00 2001 From: FLL <2162874245@qq.com> Date: Tue, 22 Jul 2025 18:55:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customerService/contingenPlan/index.ts | 61 ++++++ .../customerService/contingenPlan/model.d.ts | 159 ++++++++++++++++ .../workOrderPending/data.ts | 65 +++++++ .../workOrderPending/index.vue | 87 ++++++++- .../workOrderPending/orders-modal.vue | 138 ++++++++++++++ .../workOrderPending/work-orders-detail.vue | 80 ++++++++ .../workOrderPending/workOrders-modal.vue | 163 ++++++++++++++++ .../workOrderProcessed/data.ts | 105 +++++++++++ .../workOrderProcessed/index.vue | 87 ++++++++- .../workOrderProcessed/orders-modal.vue | 138 ++++++++++++++ .../workOrderProcessed/work-orders-detail.vue | 97 ++++++++++ .../workOrderProcessed/workOrders-modal.vue | 163 ++++++++++++++++ .../businessManagement/workOrders/index.vue | 16 +- .../workOrders/orders-modal.vue | 11 +- .../workOrders/work-orders-detail.vue | 4 +- .../workOrders/workOrders-modal.vue | 2 +- .../customerService/centerConsole/index.vue | 170 +++++++++++++++++ .../contingenPlan/contingenPlan-detail.vue | 57 ++++++ .../contingenPlan/contingenPlan-modal.vue | 133 +++++++++++++ .../customerService/contingenPlan/data.ts | 158 ++++++++++++++++ .../customerService/contingenPlan/index.vue | 178 ++++++++++++++++++ 21 files changed, 2046 insertions(+), 26 deletions(-) create mode 100644 apps/web-antd/src/api/property/customerService/contingenPlan/index.ts create mode 100644 apps/web-antd/src/api/property/customerService/contingenPlan/model.d.ts create mode 100644 apps/web-antd/src/views/property/businessManagement/workOrderPending/data.ts create mode 100644 apps/web-antd/src/views/property/businessManagement/workOrderPending/orders-modal.vue create mode 100644 apps/web-antd/src/views/property/businessManagement/workOrderPending/work-orders-detail.vue create mode 100644 apps/web-antd/src/views/property/businessManagement/workOrderPending/workOrders-modal.vue create mode 100644 apps/web-antd/src/views/property/businessManagement/workOrderProcessed/data.ts create mode 100644 apps/web-antd/src/views/property/businessManagement/workOrderProcessed/orders-modal.vue create mode 100644 apps/web-antd/src/views/property/businessManagement/workOrderProcessed/work-orders-detail.vue create mode 100644 apps/web-antd/src/views/property/businessManagement/workOrderProcessed/workOrders-modal.vue create mode 100644 apps/web-antd/src/views/property/customerService/centerConsole/index.vue create mode 100644 apps/web-antd/src/views/property/customerService/contingenPlan/contingenPlan-detail.vue create mode 100644 apps/web-antd/src/views/property/customerService/contingenPlan/contingenPlan-modal.vue create mode 100644 apps/web-antd/src/views/property/customerService/contingenPlan/data.ts create mode 100644 apps/web-antd/src/views/property/customerService/contingenPlan/index.vue diff --git a/apps/web-antd/src/api/property/customerService/contingenPlan/index.ts b/apps/web-antd/src/api/property/customerService/contingenPlan/index.ts new file mode 100644 index 00000000..49af0f2f --- /dev/null +++ b/apps/web-antd/src/api/property/customerService/contingenPlan/index.ts @@ -0,0 +1,61 @@ +import type { ContingenPlanVO, ContingenPlanForm, ContingenPlanQuery } 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 contingenPlanList(params?: ContingenPlanQuery) { + return requestClient.get>('/property/contingenPlan/list', { params }); +} + +/** + * 导出应急预案管理列表 + * @param params + * @returns 应急预案管理列表 + */ +export function contingenPlanExport(params?: ContingenPlanQuery) { + return commonExport('/property/contingenPlan/export', params ?? {}); +} + +/** + * 查询应急预案管理详情 + * @param id id + * @returns 应急预案管理详情 + */ +export function contingenPlanInfo(id: ID) { + return requestClient.get(`/property/contingenPlan/${id}`); +} + +/** + * 新增应急预案管理 + * @param data + * @returns void + */ +export function contingenPlanAdd(data: ContingenPlanForm) { + return requestClient.postWithMsg('/property/contingenPlan', data); +} + +/** + * 更新应急预案管理 + * @param data + * @returns void + */ +export function contingenPlanUpdate(data: ContingenPlanForm) { + return requestClient.putWithMsg('/property/contingenPlan', data); +} + +/** + * 删除应急预案管理 + * @param id id + * @returns void + */ +export function contingenPlanRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/contingenPlan/${id}`); +} diff --git a/apps/web-antd/src/api/property/customerService/contingenPlan/model.d.ts b/apps/web-antd/src/api/property/customerService/contingenPlan/model.d.ts new file mode 100644 index 00000000..454c9597 --- /dev/null +++ b/apps/web-antd/src/api/property/customerService/contingenPlan/model.d.ts @@ -0,0 +1,159 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface ContingenPlanVO { + /** + * 主键 + */ + id: string | number; + + /** + * 预案类型(1.自然灾害,2事故灾难3公共卫生,4社会安全) + */ + contingenPlanType: string; + + /** + * 预案名称 + */ + contingenPlanName: string; + + /** + * 预案内容 + */ + contingenPlanContent: string; + + /** + * 发起人 + */ + initiat: string; + + /** + * 责任人 + */ + dutyPersion: number; + + /** + * 风险等级 + */ + grade: number; + + /** + * 完成时间 + */ + compleTimes: string; + + /** + * 状态(1.待审核2待进行3已完成) + */ + status: string; + + /** + * 搜索值 + */ + searchValue: string; + +} + +export interface ContingenPlanForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 预案类型(1.自然灾害,2事故灾难3公共卫生,4社会安全) + */ + contingenPlanType?: string; + + /** + * 预案名称 + */ + contingenPlanName?: string; + + /** + * 预案内容 + */ + contingenPlanContent?: string; + + /** + * 发起人 + */ + initiat?: string; + + /** + * 责任人 + */ + dutyPersion?: number; + + /** + * 风险等级 + */ + grade?: number; + + /** + * 完成时间 + */ + compleTimes?: string; + + /** + * 状态(1.待审核2待进行3已完成) + */ + status?: string; + + /** + * 搜索值 + */ + searchValue?: string; + +} + +export interface ContingenPlanQuery extends PageQuery { + /** + * 预案类型(1.自然灾害,2事故灾难3公共卫生,4社会安全) + */ + contingenPlanType?: string; + + /** + * 预案名称 + */ + contingenPlanName?: string; + + /** + * 预案内容 + */ + contingenPlanContent?: string; + + /** + * 发起人 + */ + initiat?: string; + + /** + * 责任人 + */ + dutyPersion?: number; + + /** + * 风险等级 + */ + grade?: number; + + /** + * 完成时间 + */ + compleTimes?: string; + + /** + * 状态(1.待审核2待进行3已完成) + */ + status?: string; + + /** + * 搜索值 + */ + searchValue?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderPending/data.ts b/apps/web-antd/src/views/property/businessManagement/workOrderPending/data.ts new file mode 100644 index 00000000..e3d051d0 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrderPending/data.ts @@ -0,0 +1,65 @@ +import type {FormSchemaGetter} from '#/adapter/form'; +import type {VxeGridProps} from '#/adapter/vxe-table'; +import {renderDict} from "#/utils/render"; + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'orderNo', + label: '工单编号', + }, + { + component: 'Input', + fieldName: 'orderName', + label: '工单名称', + }, + // { + // component: 'Select', + // componentProps: { + // options: getDictOptions('wy_gdclzt'), + // }, + // fieldName: 'status', + // label: '状态', + // }, +]; + +export const columns: VxeGridProps['columns'] = [ + { + title: '工单编号', + field: 'orderNo', + }, + { + title: '工单名称', + field: 'orderName', + }, + { + title: '工单类型', + field: 'typeName', + }, + { + title: '状态', + field: 'status', + slots: { + default: ({row}) => { + return renderDict(row.status, 'wy_gdclzt'); + }, + }, + }, + { + title: '地址', + field: 'location', + }, + { + title: '计划完成时间', + field: 'planCompleTime', + }, + { + field: 'action', + fixed: 'right', + slots: {default: 'action'}, + title: '操作', + width: 120, + }, +]; + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderPending/index.vue b/apps/web-antd/src/views/property/businessManagement/workOrderPending/index.vue index 85af7153..3f2f4040 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrderPending/index.vue +++ b/apps/web-antd/src/views/property/businessManagement/workOrderPending/index.vue @@ -1,11 +1,92 @@ - + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderPending/orders-modal.vue b/apps/web-antd/src/views/property/businessManagement/workOrderPending/orders-modal.vue new file mode 100644 index 00000000..df252f63 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrderPending/orders-modal.vue @@ -0,0 +1,138 @@ + + + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderPending/work-orders-detail.vue b/apps/web-antd/src/views/property/businessManagement/workOrderPending/work-orders-detail.vue new file mode 100644 index 00000000..2a95bdf1 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrderPending/work-orders-detail.vue @@ -0,0 +1,80 @@ + + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderPending/workOrders-modal.vue b/apps/web-antd/src/views/property/businessManagement/workOrderPending/workOrders-modal.vue new file mode 100644 index 00000000..8de52792 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrderPending/workOrders-modal.vue @@ -0,0 +1,163 @@ + + + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/data.ts b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/data.ts new file mode 100644 index 00000000..f283aa89 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/data.ts @@ -0,0 +1,105 @@ +import type {FormSchemaGetter} from '#/adapter/form'; +import type {VxeGridProps} from '#/adapter/vxe-table'; +import {renderDict} from "#/utils/render"; +import {h} from "vue"; +import {Rate} from "ant-design-vue"; + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'orderNo', + label: '工单编号', + }, + { + component: 'Input', + fieldName: 'orderName', + label: '工单名称', + }, + // { + // component: 'Select', + // componentProps: { + // options: getDictOptions('wy_gdclzt'), + // }, + // fieldName: 'status', + // label: '状态', + // }, +]; + +export const columns: VxeGridProps['columns'] = [ + { + title: '工单编号', + field: 'orderNo', + width: 200, + }, + { + title: '工单名称', + field: 'orderName', + minWidth: 180, + }, + { + title: '工单类型', + field: 'typeName', + minWidth: 150, + }, + { + title: '派单时间', + field: 'dispatchTime', + width: 100, + }, + { + title: '状态', + field: 'status', + slots: { + default: ({row}) => { + return renderDict(row.status, 'wy_gdclzt'); + }, + }, + width: 100, + }, + { + title: '地址', + field: 'location', + width: 100, + }, + { + title: '计划完成时间', + field: 'planCompleTime', + width: 100, + }, + { + title: '完成时间', + field: 'compleTime', + width: 100, + }, + { + title: '评价', + field: 'serviceEvalua', + width: 180, + slots: { + default: ({row}) => { + return h(Rate, { + value: row.serviceEvalua || 0, + disabled: true, + }); + }, + }, + }, + { + title: '是否超时', + field: 'isTimeOut', + width: 100, + slots: { + default: ({row}) => { + return row.isTimeOut ? renderDict(row.isTimeOut, 'wy_sf') : ''; + + }, + }, + }, + { + field: 'action', + fixed: 'right', + slots: {default: 'action'}, + title: '操作', + width: 120, + }, +]; diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/index.vue b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/index.vue index 85af7153..77926bd9 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/index.vue +++ b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/index.vue @@ -1,11 +1,92 @@ - + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/orders-modal.vue b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/orders-modal.vue new file mode 100644 index 00000000..d6697747 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/orders-modal.vue @@ -0,0 +1,138 @@ + + + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/work-orders-detail.vue b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/work-orders-detail.vue new file mode 100644 index 00000000..abdd4c3e --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/work-orders-detail.vue @@ -0,0 +1,97 @@ + + + diff --git a/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/workOrders-modal.vue b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/workOrders-modal.vue new file mode 100644 index 00000000..8de52792 --- /dev/null +++ b/apps/web-antd/src/views/property/businessManagement/workOrderProcessed/workOrders-modal.vue @@ -0,0 +1,163 @@ + + + + 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 fd4bd58b..26ac66cb 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/index.vue @@ -8,12 +8,10 @@ import { type VxeGridProps } from '#/adapter/vxe-table'; import { - workOrdersExport, workOrdersList, workOrdersRemove, } from '#/api/property/businessManagement/workOrders'; import type {WorkOrdersForm} from '#/api/property/businessManagement/workOrders/model'; -import {commonDownloadExcel} from '#/utils/file/download'; import workOrdersModal from './workOrders-modal.vue'; import workOrdersDetail from './work-orders-detail.vue'; import ordersModal from './orders-modal.vue'; @@ -130,12 +128,6 @@ function handleMultiDelete() { }); } -function handleDownloadExcel() { - commonDownloadExcel(workOrdersExport, '工单处理数据', tableApi.formApi.form.values, { - fieldMappingTime: formOptions.fieldMappingTime, - }); -} - async function queryOrderType() { let params = { pageSize: 1000, @@ -170,12 +162,6 @@ onMounted(async () => {