443 lines
10 KiB
TypeScript
443 lines
10 KiB
TypeScript
|
|
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'),
|
||
|
|
},
|
||
|
|
]);
|