From 54924d973e42dc39a32c15de07e87ecf0014dd50 Mon Sep 17 00:00:00 2001 From: ChenYi <296215406@outlook.com> Date: Tue, 8 Jul 2025 16:04:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eone=E5=92=8Cctwing=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E9=A1=B5=E9=9D=A2=E6=96=87=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=AE=9E=E7=8E=B0=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/.env.development | 6 +- .../src/views/ctwingManger/account/index.vue | 326 +++++++++++++ .../src/views/ctwingManger/account/schema.ts | 442 ++++++++++++++++++ .../ctwingManger/privateProduct/index.vue | 326 +++++++++++++ .../ctwingManger/privateProduct/schema.ts | 442 ++++++++++++++++++ .../{measuringPoint => ctwingLog}/index.vue | 0 .../{measuringPoint => ctwingLog}/schema.ts | 0 .../src/views/dataManger/deviceData/index.vue | 64 +++ .../src/views/dataManger/deviceData/schema.ts | 42 ++ .../src/views/dataManger/onenetLog/index.vue | 64 +++ .../src/views/dataManger/onenetLog/schema.ts | 42 ++ .../src/views/onenetManger/account/index.vue | 326 +++++++++++++ .../src/views/onenetManger/account/schema.ts | 442 ++++++++++++++++++ .../onenetManger/privateProduct/index.vue | 326 +++++++++++++ .../onenetManger/privateProduct/schema.ts | 442 ++++++++++++++++++ 15 files changed, 3287 insertions(+), 3 deletions(-) create mode 100644 apps/web-antd/src/views/ctwingManger/account/index.vue create mode 100644 apps/web-antd/src/views/ctwingManger/account/schema.ts create mode 100644 apps/web-antd/src/views/ctwingManger/privateProduct/index.vue create mode 100644 apps/web-antd/src/views/ctwingManger/privateProduct/schema.ts rename apps/web-antd/src/views/dataManger/{measuringPoint => ctwingLog}/index.vue (100%) rename apps/web-antd/src/views/dataManger/{measuringPoint => ctwingLog}/schema.ts (100%) create mode 100644 apps/web-antd/src/views/dataManger/deviceData/index.vue create mode 100644 apps/web-antd/src/views/dataManger/deviceData/schema.ts create mode 100644 apps/web-antd/src/views/dataManger/onenetLog/index.vue create mode 100644 apps/web-antd/src/views/dataManger/onenetLog/schema.ts create mode 100644 apps/web-antd/src/views/onenetManger/account/index.vue create mode 100644 apps/web-antd/src/views/onenetManger/account/schema.ts create mode 100644 apps/web-antd/src/views/onenetManger/privateProduct/index.vue create mode 100644 apps/web-antd/src/views/onenetManger/privateProduct/schema.ts diff --git a/apps/web-antd/.env.development b/apps/web-antd/.env.development index 6470208..6069b02 100644 --- a/apps/web-antd/.env.development +++ b/apps/web-antd/.env.development @@ -29,10 +29,10 @@ VITE_REFRESH_ROLE = true # VITE_WEBSOCKET_URL=http://182.43.18.151:44317/signalr/notification # 后端接口地址 -VITE_APP_API_ADDRESS=http://47.110.53.196:28080 -# VITE_APP_API_ADDRESS=http://10.10.70.222:44333 +#VITE_APP_API_ADDRESS=http://47.110.53.196:28080 + VITE_APP_API_ADDRESS=http://10.10.70.11:10500 # websocket地址 -VITE_WEBSOCKET_URL=http://localhost:44315/signalr/notification +VITE_WEBSOCKET_URL=http://10.10.70.11:10500/signalr/notification diff --git a/apps/web-antd/src/views/ctwingManger/account/index.vue b/apps/web-antd/src/views/ctwingManger/account/index.vue new file mode 100644 index 0000000..9a3e3c8 --- /dev/null +++ b/apps/web-antd/src/views/ctwingManger/account/index.vue @@ -0,0 +1,326 @@ + + + diff --git a/apps/web-antd/src/views/ctwingManger/account/schema.ts b/apps/web-antd/src/views/ctwingManger/account/schema.ts new file mode 100644 index 0000000..ff24414 --- /dev/null +++ b/apps/web-antd/src/views/ctwingManger/account/schema.ts @@ -0,0 +1,442 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { computed } from 'vue'; + +import { z } from '@vben/common-ui'; + +import { $t } from '#/locales'; + +export const querySchema = computed(() => [ + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + }, +]); +export const meterTypeOptions = [ + { + label: $t('abp.meters.ElectricityMeter'), + value: 1, + }, + { + label: $t('abp.meters.waterMeter'), + value: 2, + }, + { + label: $t('abp.meters.GasMeter'), + value: 3, + }, + { + label: $t('abp.meters.HeatMeter'), + value: 4, + }, + { + label: $t('abp.meters.WaterMeterFlowmeter'), + value: 5, + }, + { + label: $t('abp.meters.GasMeterFlowmeter'), + value: 6, + }, +]; +export const rateOptions = [ + { + label: $t('abp.meters.MultipleRate'), + value: false, + }, + { + label: $t('abp.meters.SingleRate'), + value: true, + }, +]; +export const tableSchema: any = computed((): VxeGridProps['columns'] => [ + { title: $t('common.seq'), type: 'seq', width: 50 }, + { field: 'meterName', title: $t('abp.meters.meterName'), minWidth: '150' }, + { + field: 'meterAddress', + title: $t('abp.meters.meterAddress'), + minWidth: '150', + }, + { + field: 'meterType', + title: $t('abp.meters.meterType'), + minWidth: '150', + slots: { default: 'isMeterType' }, + }, + { + field: 'dynamicPassword', + title: $t('abp.meters.dynamicPassword'), + minWidth: '150', + slots: { default: 'isDynamicPassword' }, + }, + { + field: 'password', + title: $t('abp.meters.password'), + minWidth: '100', + }, + { + field: 'singleRate', + title: $t('abp.meters.singleRate'), + minWidth: '150', + slots: { default: 'isSingleRate' }, + }, + { + field: 'selfDevelop', + title: $t('abp.meters.selfDevelop'), + minWidth: '150', + slots: { default: 'isSelfDevelop' }, + }, + { field: 'brandType', title: $t('abp.meters.brandType'), minWidth: '150' }, + { + field: 'archiveStatus', + title: $t('abp.meters.archiveStatus'), + minWidth: '150', + slots: { default: 'isArchiveStatus' }, + }, + { + field: 'tripState', + title: $t('abp.meters.tripState'), + minWidth: '150', + slots: { default: 'isTripState' }, + }, + { field: 'timesA', title: $t('abp.meters.timesA'), minWidth: '100' }, + { field: 'timev', title: $t('abp.meters.timev'), minWidth: '100' }, + { + field: 'haveValve', + title: $t('abp.meters.haveValve'), + minWidth: '150', + slots: { default: 'isHaveValve' }, + }, + { + field: 'enabled', + title: $t('common.isEnable'), + minWidth: '150', + slots: { default: 'isEnable' }, + }, + { + title: $t('common.action'), + field: 'action', + fixed: 'right', + width: '150', + slots: { default: 'action' }, + }, +]); + +export const addUserFormSchema: any = computed(() => [ + { + component: 'Input', + fieldName: 'meterName', + label: $t('abp.meters.meterName'), + rules: z.string().min(1, { + message: `${$t('common.pleaseInput')}${$t('common.info')}${$t('abp.meters.meterName')}`, + }), + }, + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + rules: z + .string() + .min(1, { + message: `${$t('common.pleaseInput')}${$t('common.numberType')}${$t('abp.meters.meterAddress')}`, + }) + .refine((value) => /^\d+$/.test(value), { + message: $t('abp.meters.checkmeterAddress'), + }), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: meterTypeOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }, + fieldName: 'meterType', + label: $t('abp.meters.meterType'), + rules: z + .number() + .min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }) + .default(1), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: rateOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.singleRate')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + rules(values: any) { + if (values.meterType === 1) { + return 'required'; + } + return null; + }, + triggerFields: ['meterType'], + }, + fieldName: 'singleRate', + label: $t('abp.meters.singleRate'), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'selfDevelop', + label: $t('abp.meters.selfDevelop'), + }, + { + component: 'Input', + fieldName: 'brandType', + label: $t('abp.meters.brandType'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'dynamicPassword', + label: $t('abp.meters.dynamicPassword'), + }, + { + component: 'Input', + fieldName: 'password', + label: $t('abp.meters.password'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + dependencies: { + show(values: any) { + return values.meterType === 2; + }, + triggerFields: ['meterType'], + }, + fieldName: 'haveValve', + label: $t('abp.meters.haveValve'), + }, + { + component: 'Input', + fieldName: 'timesA', + label: $t('abp.meters.timesA'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'timev', + label: $t('abp.meters.timev'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'meteringCode', + label: $t('abp.meters.meteringCode'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }) + .default('1'), + }, +]); + +export const editUserFormSchemaEdit: any = computed(() => [ + { + component: 'Input', + fieldName: 'meterName', + label: $t('abp.meters.meterName'), + rules: z.string().min(1, { + message: `${$t('common.pleaseInput')}${$t('common.info')}${$t('abp.meters.meterName')}`, + }), + }, + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + rules: z + .string() + .min(1, { + message: `${$t('common.pleaseInput')}${$t('common.numberType')}${$t('abp.meters.meterAddress')}`, + }) + .refine((value) => /^\d+$/.test(value), { + message: $t('abp.meters.checkmeterAddress'), + }), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: meterTypeOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }, + fieldName: 'meterType', + label: $t('abp.meters.meterType'), + rules: z + .number() + .min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }) + .default(1), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: rateOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.singleRate')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + rules(values: any) { + if (values.meterType === 1) { + return 'required'; + } + return null; + }, + triggerFields: ['meterType'], + }, + fieldName: 'singleRate', + label: $t('abp.meters.singleRate'), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'selfDevelop', + label: $t('abp.meters.selfDevelop'), + }, + { + component: 'Input', + fieldName: 'brandType', + label: $t('abp.meters.brandType'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'dynamicPassword', + label: $t('abp.meters.dynamicPassword'), + }, + { + component: 'Input', + fieldName: 'password', + label: $t('abp.meters.password'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + dependencies: { + show(values: any) { + return values.meterType === 2; + }, + triggerFields: ['meterType'], + }, + fieldName: 'haveValve', + label: $t('abp.meters.haveValve'), + }, + { + component: 'Input', + fieldName: 'timesA', + label: $t('abp.meters.timesA'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'timev', + label: $t('abp.meters.timev'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'meteringCode', + label: $t('abp.meters.meteringCode'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }) + .min(1, { + message: `${$t('common.MustGreaterTthan0')}`, + }) + .default('1'), + }, +]); diff --git a/apps/web-antd/src/views/ctwingManger/privateProduct/index.vue b/apps/web-antd/src/views/ctwingManger/privateProduct/index.vue new file mode 100644 index 0000000..9a3e3c8 --- /dev/null +++ b/apps/web-antd/src/views/ctwingManger/privateProduct/index.vue @@ -0,0 +1,326 @@ + + + diff --git a/apps/web-antd/src/views/ctwingManger/privateProduct/schema.ts b/apps/web-antd/src/views/ctwingManger/privateProduct/schema.ts new file mode 100644 index 0000000..ff24414 --- /dev/null +++ b/apps/web-antd/src/views/ctwingManger/privateProduct/schema.ts @@ -0,0 +1,442 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { computed } from 'vue'; + +import { z } from '@vben/common-ui'; + +import { $t } from '#/locales'; + +export const querySchema = computed(() => [ + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + }, +]); +export const meterTypeOptions = [ + { + label: $t('abp.meters.ElectricityMeter'), + value: 1, + }, + { + label: $t('abp.meters.waterMeter'), + value: 2, + }, + { + label: $t('abp.meters.GasMeter'), + value: 3, + }, + { + label: $t('abp.meters.HeatMeter'), + value: 4, + }, + { + label: $t('abp.meters.WaterMeterFlowmeter'), + value: 5, + }, + { + label: $t('abp.meters.GasMeterFlowmeter'), + value: 6, + }, +]; +export const rateOptions = [ + { + label: $t('abp.meters.MultipleRate'), + value: false, + }, + { + label: $t('abp.meters.SingleRate'), + value: true, + }, +]; +export const tableSchema: any = computed((): VxeGridProps['columns'] => [ + { title: $t('common.seq'), type: 'seq', width: 50 }, + { field: 'meterName', title: $t('abp.meters.meterName'), minWidth: '150' }, + { + field: 'meterAddress', + title: $t('abp.meters.meterAddress'), + minWidth: '150', + }, + { + field: 'meterType', + title: $t('abp.meters.meterType'), + minWidth: '150', + slots: { default: 'isMeterType' }, + }, + { + field: 'dynamicPassword', + title: $t('abp.meters.dynamicPassword'), + minWidth: '150', + slots: { default: 'isDynamicPassword' }, + }, + { + field: 'password', + title: $t('abp.meters.password'), + minWidth: '100', + }, + { + field: 'singleRate', + title: $t('abp.meters.singleRate'), + minWidth: '150', + slots: { default: 'isSingleRate' }, + }, + { + field: 'selfDevelop', + title: $t('abp.meters.selfDevelop'), + minWidth: '150', + slots: { default: 'isSelfDevelop' }, + }, + { field: 'brandType', title: $t('abp.meters.brandType'), minWidth: '150' }, + { + field: 'archiveStatus', + title: $t('abp.meters.archiveStatus'), + minWidth: '150', + slots: { default: 'isArchiveStatus' }, + }, + { + field: 'tripState', + title: $t('abp.meters.tripState'), + minWidth: '150', + slots: { default: 'isTripState' }, + }, + { field: 'timesA', title: $t('abp.meters.timesA'), minWidth: '100' }, + { field: 'timev', title: $t('abp.meters.timev'), minWidth: '100' }, + { + field: 'haveValve', + title: $t('abp.meters.haveValve'), + minWidth: '150', + slots: { default: 'isHaveValve' }, + }, + { + field: 'enabled', + title: $t('common.isEnable'), + minWidth: '150', + slots: { default: 'isEnable' }, + }, + { + title: $t('common.action'), + field: 'action', + fixed: 'right', + width: '150', + slots: { default: 'action' }, + }, +]); + +export const addUserFormSchema: any = computed(() => [ + { + component: 'Input', + fieldName: 'meterName', + label: $t('abp.meters.meterName'), + rules: z.string().min(1, { + message: `${$t('common.pleaseInput')}${$t('common.info')}${$t('abp.meters.meterName')}`, + }), + }, + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + rules: z + .string() + .min(1, { + message: `${$t('common.pleaseInput')}${$t('common.numberType')}${$t('abp.meters.meterAddress')}`, + }) + .refine((value) => /^\d+$/.test(value), { + message: $t('abp.meters.checkmeterAddress'), + }), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: meterTypeOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }, + fieldName: 'meterType', + label: $t('abp.meters.meterType'), + rules: z + .number() + .min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }) + .default(1), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: rateOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.singleRate')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + rules(values: any) { + if (values.meterType === 1) { + return 'required'; + } + return null; + }, + triggerFields: ['meterType'], + }, + fieldName: 'singleRate', + label: $t('abp.meters.singleRate'), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'selfDevelop', + label: $t('abp.meters.selfDevelop'), + }, + { + component: 'Input', + fieldName: 'brandType', + label: $t('abp.meters.brandType'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'dynamicPassword', + label: $t('abp.meters.dynamicPassword'), + }, + { + component: 'Input', + fieldName: 'password', + label: $t('abp.meters.password'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + dependencies: { + show(values: any) { + return values.meterType === 2; + }, + triggerFields: ['meterType'], + }, + fieldName: 'haveValve', + label: $t('abp.meters.haveValve'), + }, + { + component: 'Input', + fieldName: 'timesA', + label: $t('abp.meters.timesA'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'timev', + label: $t('abp.meters.timev'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'meteringCode', + label: $t('abp.meters.meteringCode'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }) + .default('1'), + }, +]); + +export const editUserFormSchemaEdit: any = computed(() => [ + { + component: 'Input', + fieldName: 'meterName', + label: $t('abp.meters.meterName'), + rules: z.string().min(1, { + message: `${$t('common.pleaseInput')}${$t('common.info')}${$t('abp.meters.meterName')}`, + }), + }, + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + rules: z + .string() + .min(1, { + message: `${$t('common.pleaseInput')}${$t('common.numberType')}${$t('abp.meters.meterAddress')}`, + }) + .refine((value) => /^\d+$/.test(value), { + message: $t('abp.meters.checkmeterAddress'), + }), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: meterTypeOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }, + fieldName: 'meterType', + label: $t('abp.meters.meterType'), + rules: z + .number() + .min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }) + .default(1), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: rateOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.singleRate')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + rules(values: any) { + if (values.meterType === 1) { + return 'required'; + } + return null; + }, + triggerFields: ['meterType'], + }, + fieldName: 'singleRate', + label: $t('abp.meters.singleRate'), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'selfDevelop', + label: $t('abp.meters.selfDevelop'), + }, + { + component: 'Input', + fieldName: 'brandType', + label: $t('abp.meters.brandType'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'dynamicPassword', + label: $t('abp.meters.dynamicPassword'), + }, + { + component: 'Input', + fieldName: 'password', + label: $t('abp.meters.password'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + dependencies: { + show(values: any) { + return values.meterType === 2; + }, + triggerFields: ['meterType'], + }, + fieldName: 'haveValve', + label: $t('abp.meters.haveValve'), + }, + { + component: 'Input', + fieldName: 'timesA', + label: $t('abp.meters.timesA'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'timev', + label: $t('abp.meters.timev'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'meteringCode', + label: $t('abp.meters.meteringCode'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }) + .min(1, { + message: `${$t('common.MustGreaterTthan0')}`, + }) + .default('1'), + }, +]); diff --git a/apps/web-antd/src/views/dataManger/measuringPoint/index.vue b/apps/web-antd/src/views/dataManger/ctwingLog/index.vue similarity index 100% rename from apps/web-antd/src/views/dataManger/measuringPoint/index.vue rename to apps/web-antd/src/views/dataManger/ctwingLog/index.vue diff --git a/apps/web-antd/src/views/dataManger/measuringPoint/schema.ts b/apps/web-antd/src/views/dataManger/ctwingLog/schema.ts similarity index 100% rename from apps/web-antd/src/views/dataManger/measuringPoint/schema.ts rename to apps/web-antd/src/views/dataManger/ctwingLog/schema.ts diff --git a/apps/web-antd/src/views/dataManger/deviceData/index.vue b/apps/web-antd/src/views/dataManger/deviceData/index.vue new file mode 100644 index 0000000..439bb1f --- /dev/null +++ b/apps/web-antd/src/views/dataManger/deviceData/index.vue @@ -0,0 +1,64 @@ + + + diff --git a/apps/web-antd/src/views/dataManger/deviceData/schema.ts b/apps/web-antd/src/views/dataManger/deviceData/schema.ts new file mode 100644 index 0000000..4ca1afc --- /dev/null +++ b/apps/web-antd/src/views/dataManger/deviceData/schema.ts @@ -0,0 +1,42 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { computed } from 'vue'; + +import dayjs from 'dayjs'; + +import { $t } from '#/locales'; + +export const querySchema = computed(() => [ + { + component: 'Input', + fieldName: 'FocusAddress', + label: $t('abp.focus.focusAddress'), + }, +]); +export const tableSchema: any = computed((): VxeGridProps['columns'] => [ + { title: $t('common.seq'), type: 'seq', width: 50 }, + { field: 'systemName', title: $t('abp.log.systemName'), minWidth: '150' }, + { + field: 'projectId', + title: $t('abp.log.projectId'), + minWidth: '150', + }, + { + field: 'dataType', + title: $t('abp.log.dataType'), + minWidth: '150', + }, + { + field: 'deviceType', + title: $t('abp.log.deviceType'), + minWidth: '150', + }, + { + field: 'times', + title: $t('abp.log.timestamps'), + minWidth: '150', + formatter: ({ cellValue }) => { + return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss'); + }, + }, +]); diff --git a/apps/web-antd/src/views/dataManger/onenetLog/index.vue b/apps/web-antd/src/views/dataManger/onenetLog/index.vue new file mode 100644 index 0000000..439bb1f --- /dev/null +++ b/apps/web-antd/src/views/dataManger/onenetLog/index.vue @@ -0,0 +1,64 @@ + + + diff --git a/apps/web-antd/src/views/dataManger/onenetLog/schema.ts b/apps/web-antd/src/views/dataManger/onenetLog/schema.ts new file mode 100644 index 0000000..4ca1afc --- /dev/null +++ b/apps/web-antd/src/views/dataManger/onenetLog/schema.ts @@ -0,0 +1,42 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { computed } from 'vue'; + +import dayjs from 'dayjs'; + +import { $t } from '#/locales'; + +export const querySchema = computed(() => [ + { + component: 'Input', + fieldName: 'FocusAddress', + label: $t('abp.focus.focusAddress'), + }, +]); +export const tableSchema: any = computed((): VxeGridProps['columns'] => [ + { title: $t('common.seq'), type: 'seq', width: 50 }, + { field: 'systemName', title: $t('abp.log.systemName'), minWidth: '150' }, + { + field: 'projectId', + title: $t('abp.log.projectId'), + minWidth: '150', + }, + { + field: 'dataType', + title: $t('abp.log.dataType'), + minWidth: '150', + }, + { + field: 'deviceType', + title: $t('abp.log.deviceType'), + minWidth: '150', + }, + { + field: 'times', + title: $t('abp.log.timestamps'), + minWidth: '150', + formatter: ({ cellValue }) => { + return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss'); + }, + }, +]); diff --git a/apps/web-antd/src/views/onenetManger/account/index.vue b/apps/web-antd/src/views/onenetManger/account/index.vue new file mode 100644 index 0000000..9a3e3c8 --- /dev/null +++ b/apps/web-antd/src/views/onenetManger/account/index.vue @@ -0,0 +1,326 @@ + + + diff --git a/apps/web-antd/src/views/onenetManger/account/schema.ts b/apps/web-antd/src/views/onenetManger/account/schema.ts new file mode 100644 index 0000000..ff24414 --- /dev/null +++ b/apps/web-antd/src/views/onenetManger/account/schema.ts @@ -0,0 +1,442 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { computed } from 'vue'; + +import { z } from '@vben/common-ui'; + +import { $t } from '#/locales'; + +export const querySchema = computed(() => [ + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + }, +]); +export const meterTypeOptions = [ + { + label: $t('abp.meters.ElectricityMeter'), + value: 1, + }, + { + label: $t('abp.meters.waterMeter'), + value: 2, + }, + { + label: $t('abp.meters.GasMeter'), + value: 3, + }, + { + label: $t('abp.meters.HeatMeter'), + value: 4, + }, + { + label: $t('abp.meters.WaterMeterFlowmeter'), + value: 5, + }, + { + label: $t('abp.meters.GasMeterFlowmeter'), + value: 6, + }, +]; +export const rateOptions = [ + { + label: $t('abp.meters.MultipleRate'), + value: false, + }, + { + label: $t('abp.meters.SingleRate'), + value: true, + }, +]; +export const tableSchema: any = computed((): VxeGridProps['columns'] => [ + { title: $t('common.seq'), type: 'seq', width: 50 }, + { field: 'meterName', title: $t('abp.meters.meterName'), minWidth: '150' }, + { + field: 'meterAddress', + title: $t('abp.meters.meterAddress'), + minWidth: '150', + }, + { + field: 'meterType', + title: $t('abp.meters.meterType'), + minWidth: '150', + slots: { default: 'isMeterType' }, + }, + { + field: 'dynamicPassword', + title: $t('abp.meters.dynamicPassword'), + minWidth: '150', + slots: { default: 'isDynamicPassword' }, + }, + { + field: 'password', + title: $t('abp.meters.password'), + minWidth: '100', + }, + { + field: 'singleRate', + title: $t('abp.meters.singleRate'), + minWidth: '150', + slots: { default: 'isSingleRate' }, + }, + { + field: 'selfDevelop', + title: $t('abp.meters.selfDevelop'), + minWidth: '150', + slots: { default: 'isSelfDevelop' }, + }, + { field: 'brandType', title: $t('abp.meters.brandType'), minWidth: '150' }, + { + field: 'archiveStatus', + title: $t('abp.meters.archiveStatus'), + minWidth: '150', + slots: { default: 'isArchiveStatus' }, + }, + { + field: 'tripState', + title: $t('abp.meters.tripState'), + minWidth: '150', + slots: { default: 'isTripState' }, + }, + { field: 'timesA', title: $t('abp.meters.timesA'), minWidth: '100' }, + { field: 'timev', title: $t('abp.meters.timev'), minWidth: '100' }, + { + field: 'haveValve', + title: $t('abp.meters.haveValve'), + minWidth: '150', + slots: { default: 'isHaveValve' }, + }, + { + field: 'enabled', + title: $t('common.isEnable'), + minWidth: '150', + slots: { default: 'isEnable' }, + }, + { + title: $t('common.action'), + field: 'action', + fixed: 'right', + width: '150', + slots: { default: 'action' }, + }, +]); + +export const addUserFormSchema: any = computed(() => [ + { + component: 'Input', + fieldName: 'meterName', + label: $t('abp.meters.meterName'), + rules: z.string().min(1, { + message: `${$t('common.pleaseInput')}${$t('common.info')}${$t('abp.meters.meterName')}`, + }), + }, + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + rules: z + .string() + .min(1, { + message: `${$t('common.pleaseInput')}${$t('common.numberType')}${$t('abp.meters.meterAddress')}`, + }) + .refine((value) => /^\d+$/.test(value), { + message: $t('abp.meters.checkmeterAddress'), + }), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: meterTypeOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }, + fieldName: 'meterType', + label: $t('abp.meters.meterType'), + rules: z + .number() + .min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }) + .default(1), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: rateOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.singleRate')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + rules(values: any) { + if (values.meterType === 1) { + return 'required'; + } + return null; + }, + triggerFields: ['meterType'], + }, + fieldName: 'singleRate', + label: $t('abp.meters.singleRate'), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'selfDevelop', + label: $t('abp.meters.selfDevelop'), + }, + { + component: 'Input', + fieldName: 'brandType', + label: $t('abp.meters.brandType'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'dynamicPassword', + label: $t('abp.meters.dynamicPassword'), + }, + { + component: 'Input', + fieldName: 'password', + label: $t('abp.meters.password'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + dependencies: { + show(values: any) { + return values.meterType === 2; + }, + triggerFields: ['meterType'], + }, + fieldName: 'haveValve', + label: $t('abp.meters.haveValve'), + }, + { + component: 'Input', + fieldName: 'timesA', + label: $t('abp.meters.timesA'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'timev', + label: $t('abp.meters.timev'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'meteringCode', + label: $t('abp.meters.meteringCode'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }) + .default('1'), + }, +]); + +export const editUserFormSchemaEdit: any = computed(() => [ + { + component: 'Input', + fieldName: 'meterName', + label: $t('abp.meters.meterName'), + rules: z.string().min(1, { + message: `${$t('common.pleaseInput')}${$t('common.info')}${$t('abp.meters.meterName')}`, + }), + }, + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + rules: z + .string() + .min(1, { + message: `${$t('common.pleaseInput')}${$t('common.numberType')}${$t('abp.meters.meterAddress')}`, + }) + .refine((value) => /^\d+$/.test(value), { + message: $t('abp.meters.checkmeterAddress'), + }), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: meterTypeOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }, + fieldName: 'meterType', + label: $t('abp.meters.meterType'), + rules: z + .number() + .min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }) + .default(1), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: rateOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.singleRate')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + rules(values: any) { + if (values.meterType === 1) { + return 'required'; + } + return null; + }, + triggerFields: ['meterType'], + }, + fieldName: 'singleRate', + label: $t('abp.meters.singleRate'), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'selfDevelop', + label: $t('abp.meters.selfDevelop'), + }, + { + component: 'Input', + fieldName: 'brandType', + label: $t('abp.meters.brandType'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'dynamicPassword', + label: $t('abp.meters.dynamicPassword'), + }, + { + component: 'Input', + fieldName: 'password', + label: $t('abp.meters.password'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + dependencies: { + show(values: any) { + return values.meterType === 2; + }, + triggerFields: ['meterType'], + }, + fieldName: 'haveValve', + label: $t('abp.meters.haveValve'), + }, + { + component: 'Input', + fieldName: 'timesA', + label: $t('abp.meters.timesA'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'timev', + label: $t('abp.meters.timev'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'meteringCode', + label: $t('abp.meters.meteringCode'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }) + .min(1, { + message: `${$t('common.MustGreaterTthan0')}`, + }) + .default('1'), + }, +]); diff --git a/apps/web-antd/src/views/onenetManger/privateProduct/index.vue b/apps/web-antd/src/views/onenetManger/privateProduct/index.vue new file mode 100644 index 0000000..9a3e3c8 --- /dev/null +++ b/apps/web-antd/src/views/onenetManger/privateProduct/index.vue @@ -0,0 +1,326 @@ + + + diff --git a/apps/web-antd/src/views/onenetManger/privateProduct/schema.ts b/apps/web-antd/src/views/onenetManger/privateProduct/schema.ts new file mode 100644 index 0000000..ff24414 --- /dev/null +++ b/apps/web-antd/src/views/onenetManger/privateProduct/schema.ts @@ -0,0 +1,442 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { computed } from 'vue'; + +import { z } from '@vben/common-ui'; + +import { $t } from '#/locales'; + +export const querySchema = computed(() => [ + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + }, +]); +export const meterTypeOptions = [ + { + label: $t('abp.meters.ElectricityMeter'), + value: 1, + }, + { + label: $t('abp.meters.waterMeter'), + value: 2, + }, + { + label: $t('abp.meters.GasMeter'), + value: 3, + }, + { + label: $t('abp.meters.HeatMeter'), + value: 4, + }, + { + label: $t('abp.meters.WaterMeterFlowmeter'), + value: 5, + }, + { + label: $t('abp.meters.GasMeterFlowmeter'), + value: 6, + }, +]; +export const rateOptions = [ + { + label: $t('abp.meters.MultipleRate'), + value: false, + }, + { + label: $t('abp.meters.SingleRate'), + value: true, + }, +]; +export const tableSchema: any = computed((): VxeGridProps['columns'] => [ + { title: $t('common.seq'), type: 'seq', width: 50 }, + { field: 'meterName', title: $t('abp.meters.meterName'), minWidth: '150' }, + { + field: 'meterAddress', + title: $t('abp.meters.meterAddress'), + minWidth: '150', + }, + { + field: 'meterType', + title: $t('abp.meters.meterType'), + minWidth: '150', + slots: { default: 'isMeterType' }, + }, + { + field: 'dynamicPassword', + title: $t('abp.meters.dynamicPassword'), + minWidth: '150', + slots: { default: 'isDynamicPassword' }, + }, + { + field: 'password', + title: $t('abp.meters.password'), + minWidth: '100', + }, + { + field: 'singleRate', + title: $t('abp.meters.singleRate'), + minWidth: '150', + slots: { default: 'isSingleRate' }, + }, + { + field: 'selfDevelop', + title: $t('abp.meters.selfDevelop'), + minWidth: '150', + slots: { default: 'isSelfDevelop' }, + }, + { field: 'brandType', title: $t('abp.meters.brandType'), minWidth: '150' }, + { + field: 'archiveStatus', + title: $t('abp.meters.archiveStatus'), + minWidth: '150', + slots: { default: 'isArchiveStatus' }, + }, + { + field: 'tripState', + title: $t('abp.meters.tripState'), + minWidth: '150', + slots: { default: 'isTripState' }, + }, + { field: 'timesA', title: $t('abp.meters.timesA'), minWidth: '100' }, + { field: 'timev', title: $t('abp.meters.timev'), minWidth: '100' }, + { + field: 'haveValve', + title: $t('abp.meters.haveValve'), + minWidth: '150', + slots: { default: 'isHaveValve' }, + }, + { + field: 'enabled', + title: $t('common.isEnable'), + minWidth: '150', + slots: { default: 'isEnable' }, + }, + { + title: $t('common.action'), + field: 'action', + fixed: 'right', + width: '150', + slots: { default: 'action' }, + }, +]); + +export const addUserFormSchema: any = computed(() => [ + { + component: 'Input', + fieldName: 'meterName', + label: $t('abp.meters.meterName'), + rules: z.string().min(1, { + message: `${$t('common.pleaseInput')}${$t('common.info')}${$t('abp.meters.meterName')}`, + }), + }, + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + rules: z + .string() + .min(1, { + message: `${$t('common.pleaseInput')}${$t('common.numberType')}${$t('abp.meters.meterAddress')}`, + }) + .refine((value) => /^\d+$/.test(value), { + message: $t('abp.meters.checkmeterAddress'), + }), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: meterTypeOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }, + fieldName: 'meterType', + label: $t('abp.meters.meterType'), + rules: z + .number() + .min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }) + .default(1), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: rateOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.singleRate')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + rules(values: any) { + if (values.meterType === 1) { + return 'required'; + } + return null; + }, + triggerFields: ['meterType'], + }, + fieldName: 'singleRate', + label: $t('abp.meters.singleRate'), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'selfDevelop', + label: $t('abp.meters.selfDevelop'), + }, + { + component: 'Input', + fieldName: 'brandType', + label: $t('abp.meters.brandType'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'dynamicPassword', + label: $t('abp.meters.dynamicPassword'), + }, + { + component: 'Input', + fieldName: 'password', + label: $t('abp.meters.password'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + dependencies: { + show(values: any) { + return values.meterType === 2; + }, + triggerFields: ['meterType'], + }, + fieldName: 'haveValve', + label: $t('abp.meters.haveValve'), + }, + { + component: 'Input', + fieldName: 'timesA', + label: $t('abp.meters.timesA'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'timev', + label: $t('abp.meters.timev'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'meteringCode', + label: $t('abp.meters.meteringCode'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }) + .default('1'), + }, +]); + +export const editUserFormSchemaEdit: any = computed(() => [ + { + component: 'Input', + fieldName: 'meterName', + label: $t('abp.meters.meterName'), + rules: z.string().min(1, { + message: `${$t('common.pleaseInput')}${$t('common.info')}${$t('abp.meters.meterName')}`, + }), + }, + { + component: 'Input', + fieldName: 'meterAddress', + label: $t('abp.meters.meterAddress'), + rules: z + .string() + .min(1, { + message: `${$t('common.pleaseInput')}${$t('common.numberType')}${$t('abp.meters.meterAddress')}`, + }) + .refine((value) => /^\d+$/.test(value), { + message: $t('abp.meters.checkmeterAddress'), + }), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: meterTypeOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }, + fieldName: 'meterType', + label: $t('abp.meters.meterType'), + rules: z + .number() + .min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.meters.meterType')}`, + }) + .default(1), + }, + { + component: 'Select', + componentProps: { + allowClear: true, + options: rateOptions, + placeholder: `${$t('common.pleaseSelect')}${$t('abp.meters.singleRate')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + rules(values: any) { + if (values.meterType === 1) { + return 'required'; + } + return null; + }, + triggerFields: ['meterType'], + }, + fieldName: 'singleRate', + label: $t('abp.meters.singleRate'), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'selfDevelop', + label: $t('abp.meters.selfDevelop'), + }, + { + component: 'Input', + fieldName: 'brandType', + label: $t('abp.meters.brandType'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + fieldName: 'dynamicPassword', + label: $t('abp.meters.dynamicPassword'), + }, + { + component: 'Input', + fieldName: 'password', + label: $t('abp.meters.password'), + rules: z.string().optional(), + }, + { + component: 'Switch', + componentProps: { + class: 'w-auto', + }, + dependencies: { + show(values: any) { + return values.meterType === 2; + }, + triggerFields: ['meterType'], + }, + fieldName: 'haveValve', + label: $t('abp.meters.haveValve'), + }, + { + component: 'Input', + fieldName: 'timesA', + label: $t('abp.meters.timesA'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timesA')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'timev', + label: $t('abp.meters.timev'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }, + dependencies: { + show(values: any) { + return values.meterType === 1; + }, + triggerFields: ['meterType'], + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.timev')}`, + }) + .default('1'), + }, + { + component: 'Input', + fieldName: 'meteringCode', + label: $t('abp.meters.meteringCode'), + componentProps: { + allowClear: true, + placeholder: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }, + rules: z + .string({ + message: `${$t('common.pleaseInput')}${$t('abp.meters.meteringCode')}`, + }) + .min(1, { + message: `${$t('common.MustGreaterTthan0')}`, + }) + .default('1'), + }, +]);