From a7a52d9313d5644b9162f67e4cd8485e535523b7 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Sat, 19 Jul 2025 16:48:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor(property):=20-=20=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E4=BB=AA=E8=A1=A8=E7=B1=BB=E5=9E=8B=E6=8B=86=E5=88=86=E6=B0=B4?= =?UTF-8?q?=E7=94=B5=E6=B0=94=E5=8A=9F=E8=83=BD=E6=A8=A1=E5=9D=97=20-=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=B5=E8=A1=A8=E3=80=81=E6=B0=B4=E8=A1=A8?= =?UTF-8?q?=E3=80=81=E6=B0=94=E8=A1=A8=E7=8B=AC=E7=AB=8B=E7=9A=84=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=92=8C=E7=BB=84=E4=BB=B6=20-=20=E6=9B=B4=E6=96=B0AP?= =?UTF-8?q?I=E5=92=8C=E6=95=B0=E6=8D=AE=E6=A8=A1=E5=9E=8B=E4=BB=A5?= =?UTF-8?q?=E9=80=82=E5=BA=94=E6=96=B0=E7=9A=84=E6=A8=A1=E5=9D=97=E7=BB=93?= =?UTF-8?q?=E6=9E=84=20-=20=E4=BC=98=E5=8C=96=E8=A1=A8=E5=8D=95=E5=92=8C?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=8F=90=E9=AB=98?= =?UTF-8?q?=E5=8F=AF=E7=BB=B4=E6=8A=A4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/property/meter/index.ts | 61 ----- .../src/api/property/meter/meterInfo/index.ts | 61 +++++ .../api/property/meter/meterInfo/model.d.ts | 184 ++++++++++++++ .../src/api/property/meter/model.d.ts | 229 ----------------- .../web-antd/src/views/property/meter/data.ts | 238 ------------------ .../meter/meterInfo/components/data.ts | 203 +++++++++++++++ .../components/meterInfo-modal.vue} | 52 ++-- .../meter/meterInfo/gasMeterInfo/index.vue | 178 +++++++++++++ .../{ => meterInfo/powerMeterInfo}/index.vue | 48 ++-- .../meter/meterInfo/waterMeterInfo/index.vue | 184 ++++++++++++++ 10 files changed, 867 insertions(+), 571 deletions(-) delete mode 100644 apps/web-antd/src/api/property/meter/index.ts create mode 100644 apps/web-antd/src/api/property/meter/meterInfo/index.ts create mode 100644 apps/web-antd/src/api/property/meter/meterInfo/model.d.ts delete mode 100644 apps/web-antd/src/api/property/meter/model.d.ts delete mode 100644 apps/web-antd/src/views/property/meter/data.ts create mode 100644 apps/web-antd/src/views/property/meter/meterInfo/components/data.ts rename apps/web-antd/src/views/property/meter/{meter-modal.vue => meterInfo/components/meterInfo-modal.vue} (65%) create mode 100644 apps/web-antd/src/views/property/meter/meterInfo/gasMeterInfo/index.vue rename apps/web-antd/src/views/property/meter/{ => meterInfo/powerMeterInfo}/index.vue (75%) create mode 100644 apps/web-antd/src/views/property/meter/meterInfo/waterMeterInfo/index.vue diff --git a/apps/web-antd/src/api/property/meter/index.ts b/apps/web-antd/src/api/property/meter/index.ts deleted file mode 100644 index 28fa37d4..00000000 --- a/apps/web-antd/src/api/property/meter/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import type { MeterVO, MeterForm, MeterQuery } 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 meterList(params?: MeterQuery) { - return requestClient.get>('/property/meter/list', { params }); -} - -/** - * 导出水电气列表 - * @param params - * @returns 水电气列表 - */ -export function meterExport(params?: MeterQuery) { - return commonExport('/property/meter/export', params ?? {}); -} - -/** - * 查询水电气详情 - * @param id id - * @returns 水电气详情 - */ -export function meterInfo(id: ID) { - return requestClient.get(`/property/meter/${id}`); -} - -/** - * 新增水电气 - * @param data - * @returns void - */ -export function meterAdd(data: MeterForm) { - return requestClient.postWithMsg('/property/meter', data); -} - -/** - * 更新水电气 - * @param data - * @returns void - */ -export function meterUpdate(data: MeterForm) { - return requestClient.putWithMsg('/property/meter', data); -} - -/** - * 删除水电气 - * @param id id - * @returns void - */ -export function meterRemove(id: ID | IDS) { - return requestClient.deleteWithMsg(`/property/meter/${id}`); -} diff --git a/apps/web-antd/src/api/property/meter/meterInfo/index.ts b/apps/web-antd/src/api/property/meter/meterInfo/index.ts new file mode 100644 index 00000000..108a36a7 --- /dev/null +++ b/apps/web-antd/src/api/property/meter/meterInfo/index.ts @@ -0,0 +1,61 @@ +import type { MeterInfoVO, MeterInfoForm, MeterInfoQuery } 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 meterInfoList(params?: MeterInfoQuery) { + return requestClient.get>('/property/meterInfo/list', { params }); +} + +/** + * 导出水电气列表 + * @param params + * @returns 水电气列表 + */ +export function meterInfoExport(params?: MeterInfoQuery) { + return commonExport('/property/meterInfo/export', params ?? {}); +} + +/** + * 查询水电气详情 + * @param id id + * @returns 水电气详情 + */ +export function meterInfoInfo(id: ID) { + return requestClient.get(`/property/meterInfo/${id}`); +} + +/** + * 新增水电气 + * @param data + * @returns void + */ +export function meterInfoAdd(data: MeterInfoForm) { + return requestClient.postWithMsg('/property/meterInfo', data); +} + +/** + * 更新水电气 + * @param data + * @returns void + */ +export function meterInfoUpdate(data: MeterInfoForm) { + return requestClient.putWithMsg('/property/meterInfo', data); +} + +/** + * 删除水电气 + * @param id id + * @returns void + */ +export function meterInfoRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/meterInfo/${id}`); +} diff --git a/apps/web-antd/src/api/property/meter/meterInfo/model.d.ts b/apps/web-antd/src/api/property/meter/meterInfo/model.d.ts new file mode 100644 index 00000000..f3a1e640 --- /dev/null +++ b/apps/web-antd/src/api/property/meter/meterInfo/model.d.ts @@ -0,0 +1,184 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface MeterInfoVO { + /** + * 主键id + */ + id: string | number; + + /** + * 仪表名称 + */ + meterName: string; + + /** + * 仪表编码 + */ + meterCode: string; + + /** + * 设备厂商 + */ + factoryNo: string; + + /** + * 设备类型(1-电表,2-水表,3-气表) + */ + meterType: number; + + /** + * 计量单位(1-度,2-吨,3-立方米) + */ + meterUnit: number; + + /** + * 安装位置 + */ + installLocation: string; + + /** + * 初始读数 + */ + initReading: number; + + /** + * 最大量程 + */ + maxRang: number; + + /** + * 通信状态 + */ + communicationState: number; + + /** + * 运行状态 + */ + runningState: number; + + /** + * 备注 + */ + remark: string; + +} + +export interface MeterInfoForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 仪表名称 + */ + meterName?: string; + + /** + * 仪表编码 + */ + meterCode?: string; + + /** + * 设备厂商 + */ + factoryNo?: string; + + /** + * 设备类型(1-电表,2-水表,3-气表) + */ + meterType?: number; + + /** + * 计量单位(1-度,2-吨,3-立方米) + */ + meterUnit?: number; + + /** + * 安装位置 + */ + installLocation?: string; + + /** + * 初始读数 + */ + initReading?: number; + + /** + * 最大量程 + */ + maxRang?: number; + + /** + * 通信状态 + */ + communicationState?: number; + + /** + * 运行状态 + */ + runningState?: number; + + /** + * 备注 + */ + remark?: string; + +} + +export interface MeterInfoQuery extends PageQuery { + /** + * 仪表名称 + */ + meterName?: string; + + /** + * 仪表编码 + */ + meterCode?: string; + + /** + * 设备厂商 + */ + factoryNo?: string; + + /** + * 设备类型(1-电表,2-水表,3-气表) + */ + meterType?: number; + + /** + * 计量单位(1-度,2-吨,3-立方米) + */ + meterUnit?: number; + + /** + * 安装位置 + */ + installLocation?: string; + + /** + * 初始读数 + */ + initReading?: number; + + /** + * 最大量程 + */ + maxRang?: number; + + /** + * 通信状态 + */ + communicationState?: number; + + /** + * 运行状态 + */ + runningState?: number; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/meter/model.d.ts b/apps/web-antd/src/api/property/meter/model.d.ts deleted file mode 100644 index db1fb8b6..00000000 --- a/apps/web-antd/src/api/property/meter/model.d.ts +++ /dev/null @@ -1,229 +0,0 @@ -import type { PageQuery, BaseEntity } from '#/api/common'; - -export interface MeterVO { - /** - * 主键id - */ - id: string | number; - - /** - * 水表名称 - */ - meterName: string; - - /** - * 设备编码 - */ - meterCode: string; - - /** - * 设备厂商 - */ - factoryNo: string; - - /** - * 设备类型(1-电表,2-水表,3-气表) - */ - meterType: number; - - /** - * 表用途(1-分表,2-总表,3-公摊表) - */ - meterPurpose: number; - - /** - * 分摊类型(1-不公摊,2-按分表用量,3-按租客面积,4-按房源数量,5-按固定比例) - */ - shareType: number; - - /** - * 付费类型(1-先付费,2-后付费) - */ - payType: number; - - /** - * 当前表显示读数 - */ - display: number; - - /** - * 最大表显读数(超过归0) - */ - maxDisplay: number; - - /** - * 计费倍率 - */ - billingRate: number; - - /** - * 剩余量 - */ - surplus: number; - - /** - * 通信状态 - */ - communicationState: number; - - /** - * 运行状态 - */ - runningState: number; - - /** - * 备注 - */ - remark: string; - -} - -export interface MeterForm extends BaseEntity { - /** - * 主键id - */ - id?: string | number; - - /** - * 水表名称 - */ - meterName?: string; - - /** - * 设备编码 - */ - meterCode?: string; - - /** - * 设备厂商 - */ - factoryNo?: string; - - /** - * 设备类型(1-电表,2-水表,3-气表) - */ - meterType?: number; - - /** - * 表用途(1-分表,2-总表,3-公摊表) - */ - meterPurpose?: number; - - /** - * 分摊类型(1-不公摊,2-按分表用量,3-按租客面积,4-按房源数量,5-按固定比例) - */ - shareType?: number; - - /** - * 付费类型(1-先付费,2-后付费) - */ - payType?: number; - - /** - * 当前表显示读数 - */ - display?: number; - - /** - * 最大表显读数(超过归0) - */ - maxDisplay?: number; - - /** - * 计费倍率 - */ - billingRate?: number; - - /** - * 剩余量 - */ - surplus?: number; - - /** - * 通信状态 - */ - communicationState?: number; - - /** - * 运行状态 - */ - runningState?: number; - - /** - * 备注 - */ - remark?: string; - -} - -export interface MeterQuery extends PageQuery { - /** - * 水表名称 - */ - meterName?: string; - - /** - * 设备编码 - */ - meterCode?: string; - - /** - * 设备厂商 - */ - factoryNo?: string; - - /** - * 设备类型(1-电表,2-水表,3-气表) - */ - meterType?: number; - - /** - * 表用途(1-分表,2-总表,3-公摊表) - */ - meterPurpose?: number; - - /** - * 分摊类型(1-不公摊,2-按分表用量,3-按租客面积,4-按房源数量,5-按固定比例) - */ - shareType?: number; - - /** - * 付费类型(1-先付费,2-后付费) - */ - payType?: number; - - /** - * 当前表显示读数 - */ - display?: number; - - /** - * 最大表显读数(超过归0) - */ - maxDisplay?: number; - - /** - * 计费倍率 - */ - billingRate?: number; - - /** - * 剩余量 - */ - surplus?: number; - - /** - * 通信状态 - */ - communicationState?: number; - - /** - * 运行状态 - */ - runningState?: number; - - /** - * 日期范围参数 - */ - params?: any; -} diff --git a/apps/web-antd/src/views/property/meter/data.ts b/apps/web-antd/src/views/property/meter/data.ts deleted file mode 100644 index 0946de48..00000000 --- a/apps/web-antd/src/views/property/meter/data.ts +++ /dev/null @@ -1,238 +0,0 @@ -import type { FormSchemaGetter } from '#/adapter/form'; -import type { VxeGridProps } from '#/adapter/vxe-table'; - - -export const querySchema: FormSchemaGetter = () => [ - { - component: 'Input', - fieldName: 'meterName', - label: '水表名称', - }, - { - component: 'Input', - fieldName: 'meterCode', - label: '设备编码', - }, - { - component: 'Input', - fieldName: 'factoryNo', - label: '设备厂商', - }, - { - component: 'Select', - componentProps: { - }, - fieldName: 'meterType', - label: '设备类型(1-电表,2-水表,3-气表)', - }, - { - component: 'Input', - fieldName: 'meterPurpose', - label: '表用途(1-分表,2-总表,3-公摊表)', - }, - { - component: 'Select', - componentProps: { - }, - fieldName: 'shareType', - label: '分摊类型', - }, - { - component: 'Select', - componentProps: { - }, - fieldName: 'payType', - label: '付费类型(1-先付费,2-后付费)', - }, - { - component: 'Input', - fieldName: 'display', - label: '当前表显示读数', - }, - { - component: 'Input', - fieldName: 'maxDisplay', - label: '最大表显读数(超过归0)', - }, - { - component: 'Input', - fieldName: 'billingRate', - label: '计费倍率', - }, - { - component: 'Input', - fieldName: 'surplus', - label: '剩余量', - }, - { - component: 'Input', - fieldName: 'communicationState', - label: '通信状态', - }, - { - component: 'Input', - fieldName: 'runningState', - label: '运行状态', - }, -]; - -// 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 -// export const columns: () => VxeGridProps['columns'] = () => [ -export const columns: VxeGridProps['columns'] = [ - { type: 'checkbox', width: 60 }, - { - title: '主键id', - field: 'id', - }, - { - title: '水表名称', - field: 'meterName', - }, - { - title: '设备编码', - field: 'meterCode', - }, - { - title: '设备厂商', - field: 'factoryNo', - }, - { - title: '设备类型(1-电表,2-水表,3-气表)', - field: 'meterType', - }, - { - title: '表用途(1-分表,2-总表,3-公摊表)', - field: 'meterPurpose', - }, - { - title: '分摊类型', - field: 'shareType', - }, - { - title: '付费类型(1-先付费,2-后付费)', - field: 'payType', - }, - { - title: '当前表显示读数', - field: 'display', - }, - { - title: '最大表显读数(超过归0)', - field: 'maxDisplay', - }, - { - title: '计费倍率', - field: 'billingRate', - }, - { - title: '剩余量', - field: 'surplus', - }, - { - title: '通信状态', - field: 'communicationState', - }, - { - title: '运行状态', - field: 'runningState', - }, - { - title: '备注', - field: 'remark', - }, - { - 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: 'meterName', - component: 'Input', - }, - { - label: '设备编码', - fieldName: 'meterCode', - component: 'Input', - }, - { - label: '设备厂商', - fieldName: 'factoryNo', - component: 'Input', - }, - { - label: '设备类型(1-电表,2-水表,3-气表)', - fieldName: 'meterType', - component: 'Select', - componentProps: { - }, - }, - { - label: '表用途(1-分表,2-总表,3-公摊表)', - fieldName: 'meterPurpose', - component: 'Input', - }, - { - label: '分摊类型', - fieldName: 'shareType', - component: 'Select', - componentProps: { - }, - }, - { - label: '付费类型(1-先付费,2-后付费)', - fieldName: 'payType', - component: 'Select', - componentProps: { - }, - }, - { - label: '当前表显示读数', - fieldName: 'display', - component: 'Input', - }, - { - label: '最大表显读数(超过归0)', - fieldName: 'maxDisplay', - component: 'Input', - }, - { - label: '计费倍率', - fieldName: 'billingRate', - component: 'Input', - }, - { - label: '剩余量', - fieldName: 'surplus', - component: 'Input', - }, - { - label: '通信状态', - fieldName: 'communicationState', - component: 'Input', - }, - { - label: '运行状态', - fieldName: 'runningState', - component: 'Input', - }, - { - label: '备注', - fieldName: 'remark', - component: 'Textarea', - }, -]; diff --git a/apps/web-antd/src/views/property/meter/meterInfo/components/data.ts b/apps/web-antd/src/views/property/meter/meterInfo/components/data.ts new file mode 100644 index 00000000..55226dd9 --- /dev/null +++ b/apps/web-antd/src/views/property/meter/meterInfo/components/data.ts @@ -0,0 +1,203 @@ +import type { FormSchemaGetter } from '#/adapter/form' +import type { VxeGridProps } from '#/adapter/vxe-table' + +import { getDictOptions } from '#/utils/dict' +import { renderDict } from '#/utils/render' + +export function initMoalForm(type: number) { + const modalSchema: FormSchemaGetter = () => [ + { + label: '仪表名称', + fieldName: 'meterName', + component: 'Input', + rules: 'selectRequired', + }, + { + label: '仪表编码', + fieldName: 'meterCode', + component: 'Input', + }, + { + label: '设备厂商', + fieldName: 'factoryNo', + component: 'Input', + }, + { + label: type === 1 ? '设备类型(电表)' : type === 2 ? '设备类型(水表)' : '设备类型(气表)', + fieldName: 'meterType', + component: 'Select', + defaultValue: type.toString(), + disabled: true, + componentProps: { + // 可选从DictEnum中获取 DictEnum.METER_TYPE 便于维护 + options: getDictOptions('meter_type'), + }, + rules: 'selectRequired', + }, + { + label: type === 1 ? '计量单位(度)' : type === 2 ? '计量单位(吨)' : '计量单位(立方米)', + fieldName: 'meterUnit', + component: 'Select', + defaultValue: type.toString(), + disabled: true, + componentProps: { + // 可选从DictEnum中获取 DictEnum.METER_UNIT 便于维护 + options: getDictOptions('meter_unit'), + }, + rules: 'selectRequired', + }, + { + label: '安装位置', + fieldName: 'installLocation', + component: 'Input', + }, + { + label: '初始读数', + fieldName: 'initReading', + component: 'Input', + }, + { + label: '最大量程', + fieldName: 'maxRang', + component: 'Input', + }, + { + label: '通信状态', + fieldName: 'communicationState', + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.SIS_DEVICE_STATUS 便于维护 + options: getDictOptions('sis_device_status'), + }, + }, + { + label: '运行状态', + fieldName: 'runningState', + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.SIS_DEVICE_STATUS 便于维护 + options: getDictOptions('sis_device_status'), + }, + }, + { + label: '备注', + fieldName: 'remark', + component: 'Textarea', + }, + ] + + return modalSchema +} + +export function initQuerySchema(type: number) { + const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'meterName', + label: '仪表名称', + }, + { + component: 'Input', + fieldName: 'meterCode', + label: '仪表编码', + }, + { + component: 'Select', + disabled: true, + componentProps: { + // 可选从DictEnum中获取 DictEnum.METER_TYPE 便于维护 + options: getDictOptions('meter_type'), + }, + defaultValue: type.toString(), + fieldName: 'meterType', + label: '设备类型', + } + ] + + return querySchema +} + +export function initColumns(type: number) { + + // 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 + // export const columns: () => VxeGridProps['columns'] = () => [ + const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '仪表名称', + field: 'meterName', + }, + { + title: '仪表编码', + field: 'meterCode', + }, + { + title: '设备厂商', + field: 'factoryNo', + }, + { + title: type === 1 ? '设备类型(电表)' : type === 2 ? '设备类型(水表)' : '设备类型(气表)', + field: 'meterType', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.METER_TYPE 便于维护 + return renderDict(row.meterType, 'meter_type') + }, + }, + }, + { + title: type === 1 ? '计量单位(度)' : type === 2 ? '计量单位(吨)' : '计量单位(立方米)', + field: 'meterUnit', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.METER_UNIT 便于维护 + return renderDict(row.meterUnit, 'meter_unit') + }, + }, + }, + { + title: '安装位置', + field: 'installLocation', + }, + { + title: '初始读数', + field: 'initReading', + }, + { + title: '最大量程', + field: 'maxRang', + }, + { + title: '通信状态', + field: 'communicationState', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.SIS_DEVICE_STATUS 便于维护 + return renderDict(row.communicationState, 'sis_device_status') + }, + }, + }, + { + title: '运行状态', + field: 'runningState', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.SIS_DEVICE_STATUS 便于维护 + return renderDict(row.runningState, 'sis_device_status') + }, + }, + }, + { + title: '备注', + field: 'remark', + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, + ] + return columns +} diff --git a/apps/web-antd/src/views/property/meter/meter-modal.vue b/apps/web-antd/src/views/property/meter/meterInfo/components/meterInfo-modal.vue similarity index 65% rename from apps/web-antd/src/views/property/meter/meter-modal.vue rename to apps/web-antd/src/views/property/meter/meterInfo/components/meterInfo-modal.vue index dbcdb8f2..938e91df 100644 --- a/apps/web-antd/src/views/property/meter/meter-modal.vue +++ b/apps/web-antd/src/views/property/meter/meterInfo/components/meterInfo-modal.vue @@ -1,49 +1,61 @@ + + diff --git a/apps/web-antd/src/views/property/meter/index.vue b/apps/web-antd/src/views/property/meter/meterInfo/powerMeterInfo/index.vue similarity index 75% rename from apps/web-antd/src/views/property/meter/index.vue rename to apps/web-antd/src/views/property/meter/meterInfo/powerMeterInfo/index.vue index c257f163..36903e34 100644 --- a/apps/web-antd/src/views/property/meter/index.vue +++ b/apps/web-antd/src/views/property/meter/meterInfo/powerMeterInfo/index.vue @@ -16,15 +16,17 @@ import { } from '#/adapter/vxe-table'; import { - meterExport, - meterList, - meterRemove, -} from '#/api/property/meter'; -import type { MeterForm } from '#/api/property/meter/model'; + meterInfoExport, + meterInfoList, + meterInfoRemove, +} from '#/api/property/meter/meterInfo'; +import type { MeterInfoForm } from '#/api/property/meterInfo/model'; import { commonDownloadExcel } from '#/utils/file/download'; -import meterModal from './meter-modal.vue'; -import { columns, querySchema } from './data'; +import meterInfoModal from "../components/meterInfo-modal.vue"; +import { initQuerySchema, initColumns } from "../components/data"; +const columns = initColumns(1); +const querySchema = initQuerySchema(1); const formOptions: VbenFormProps = { commonConfig: { @@ -64,7 +66,7 @@ const gridOptions: VxeGridProps = { proxyConfig: { ajax: { query: async ({ page }, formValues = {}) => { - return await meterList({ + return await meterInfoList({ pageNum: page.currentPage, pageSize: page.pageSize, ...formValues, @@ -76,7 +78,7 @@ const gridOptions: VxeGridProps = { keyField: 'id', }, // 表格全局唯一表示 保存列配置需要用到 - id: 'property-meter-index' + id: 'property-meterInfo-index' }; const [BasicTable, tableApi] = useVbenVxeGrid({ @@ -84,8 +86,8 @@ const [BasicTable, tableApi] = useVbenVxeGrid({ gridOptions, }); -const [MeterModal, modalApi] = useVbenModal({ - connectedComponent: meterModal, +const [MeterInfoModal, modalApi] = useVbenModal({ + connectedComponent: meterInfoModal, }); function handleAdd() { @@ -93,32 +95,32 @@ function handleAdd() { modalApi.open(); } -async function handleEdit(row: Required) { +async function handleEdit(row: Required) { modalApi.setData({ id: row.id }); modalApi.open(); } -async function handleDelete(row: Required) { - await meterRemove(row.id); +async function handleDelete(row: Required) { + await meterInfoRemove(row.id); await tableApi.query(); } function handleMultiDelete() { const rows = tableApi.grid.getCheckboxRecords(); - const ids = rows.map((row: Required) => row.id); + const ids = rows.map((row: Required) => row.id); Modal.confirm({ title: '提示', okType: 'danger', content: `确认删除选中的${ids.length}条记录吗?`, onOk: async () => { - await meterRemove(ids); + await meterInfoRemove(ids); await tableApi.query(); }, }); } function handleDownloadExcel() { - commonDownloadExcel(meterExport, '水电气数据', tableApi.formApi.form.values, { + commonDownloadExcel(meterInfoExport, '水电气数据', tableApi.formApi.form.values, { fieldMappingTime: formOptions.fieldMappingTime, }); } @@ -130,7 +132,7 @@ function handleDownloadExcel() { diff --git a/apps/web-antd/src/views/property/meter/meterInfo/waterMeterInfo/index.vue b/apps/web-antd/src/views/property/meter/meterInfo/waterMeterInfo/index.vue new file mode 100644 index 00000000..75af7145 --- /dev/null +++ b/apps/web-antd/src/views/property/meter/meterInfo/waterMeterInfo/index.vue @@ -0,0 +1,184 @@ + + +