优化平台日志

This commit is contained in:
ChenYi 2025-07-31 16:09:52 +08:00
parent a7c4a19eb5
commit 67261b19c9
9 changed files with 19 additions and 208 deletions

View File

@ -218,8 +218,8 @@
"IoTDataType": "数据类型",
"DataBaseName": "所属数据库",
"DeviceType": "设备类型",
"Timestamps": "时标(纳秒)",
"FormattedTimestamps": "时标",
"Timestamps": "UTC时标(纳秒)",
"FormattedTimestamps": "本地时间",
"DevicePath": "设备路径",
"DeviceAddress": "设备地址"
},

View File

@ -186,6 +186,11 @@ async function onEdit(record: any) {
//
const formValues = { ...record };
// ioTPlatformApiSelectvalueField'key'
if (formValues.ioTPlatform !== undefined && formValues.ioTPlatform !== null) {
formValues.ioTPlatform = String(formValues.ioTPlatform);
}
if (record.ioTPlatform === 2 || record.ioTPlatform === '2') {
// OneNET
formValues.oneNETAccountId = record.ioTPlatformAccountId;

View File

@ -136,11 +136,9 @@ const formOptions: VbenFormProps = {
//
const relevantFields = new Set([
'DeviceId',
'DeviceType',
'EndCreationTime',
'IoTDataType',
'StartCreationTime',
'DataBaseName',
]);
const hasRelevantChange = changedFields.some((field) =>
relevantFields.has(field),
@ -183,9 +181,7 @@ const gridOptions: VxeGridProps<any> = {
const currentFormValues = gridApi?.formApi ? await gridApi.formApi.getValues() : {};
//
let deviceId = currentFormValues.DeviceId || '';
let dataBaseName = '';
const deviceType = currentFormValues.DeviceType || '';
let deviceAddress = currentFormValues.DeviceId || '';
// 使
const deviceInfo =
@ -195,28 +191,17 @@ const gridOptions: VxeGridProps<any> = {
: null);
if (deviceInfo) {
dataBaseName = deviceInfo.businessSystemName || '';
// id
if (Number(deviceType) === 10) {
// 使 focusId
deviceId = deviceInfo.focusId || deviceId;
} else {
// 使 meterId
deviceId = deviceInfo.meterId || deviceId;
}
deviceAddress = deviceInfo.deviceAddress || deviceAddress;
}
//
const queryParams = {
pageIndex: page.currentPage,
pageSize: page.pageSize,
SearchKeyword: currentFormValues.SearchKeyword || '',
DeviceType: deviceType,
IoTDataType: currentFormValues.IoTDataType || '',
DeviceId: deviceId,
DataBaseName: dataBaseName || currentFormValues.DataBaseName || '',
DeviceId: deviceAddress, // 使
StartCreationTime: formatDate(currentFormValues.StartCreationTime),
EndCreationTime: formatDate(currentFormValues.EndCreationTime),
FocusAddress: currentFormValues.FocusAddress || '',
};
if (DeviceType) queryParams.DeviceType = DeviceType;

View File

@ -8,73 +8,6 @@ import { getCommonGetSelectList } from '#/api-client';
import { $t } from '#/locales';
export const querySchema = computed(() => [
{
component: 'ApiSelect',
fieldName: 'DataBaseName',
label: $t('abp.IoTDBBase.DataBaseName'),
componentProps: {
api: getCommonGetSelectList,
params: {
query: {
typeName: 'BusinessSystemEnum'
},
},
labelField: 'secondValue',
valueField: 'value',
optionsPropName: 'options',
immediate: true,
afterFetch: (res: any) => {
// 确保返回的是数组格式
if (Array.isArray(res)) {
return res;
}
// 如果是包装在 items 中的,提取出来
if (res && Array.isArray(res.items)) {
return res.items;
}
// 如果是包装在 data 中的,提取出来
if (res && Array.isArray(res.data)) {
return res.data;
}
// 如果都不是,返回空数组
return [];
},
},
},
{
component: 'ApiSelect',
fieldName: 'DeviceType',
label: $t('abp.IoTDBBase.DeviceType'),
componentProps: {
api: getCommonGetSelectList,
params: {
query: {
typeName: 'MeterTypeEnum'
},
},
labelField: 'value',
valueField: 'key',
optionsPropName: 'options',
immediate: true,
afterFetch: (res: any) => {
// 确保返回的是数组格式
if (Array.isArray(res)) {
return res;
}
// 如果是包装在 items 中的,提取出来
if (res && Array.isArray(res.items)) {
return res.items;
}
// 如果是包装在 data 中的,提取出来
if (res && Array.isArray(res.data)) {
return res.data;
}
// 如果都不是,返回空数组
return [];
},
},
},
{
component: 'ApiSelect',
fieldName: 'IoTDataType',
@ -83,11 +16,9 @@ export const querySchema = computed(() => [
api: getCommonGetSelectList,
params: {
query: {
input: {
typeName: 'IoTDBDataTypeConst',
},
},
},
labelField: 'value',
valueField: 'key',
optionsPropName: 'options',
@ -161,12 +92,7 @@ export const tableSchema: any = computed((): VxeGridProps['columns'] => [
return cellValue ? dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss') : '';
},
},
{
field: 'deviceType',
title: $t('abp.IoTDBBase.DeviceType'),
minWidth: 150,
slots: {},
},
{
field: 'ioTDataType',
title: $t('abp.IoTDBBase.IoTDataType'),

View File

@ -59,8 +59,8 @@ const fetchData = async () => {
if (data?.items) {
options.value = data.items.map((item) => ({
label: item.meterName,
value: item.id,
label: `${item.deviceName || item.deviceAddress} (${item.deviceAddress})`,
value: item.deviceAddress, // 使
...item, //
}));
total.value = data.totalCount || 0;

View File

@ -135,11 +135,9 @@ const formOptions: VbenFormProps = {
//
const relevantFields = new Set([
'DeviceId',
'DeviceType',
'EndCreationTime',
'IoTDataType',
'StartCreationTime',
'DataBaseName',
]);
const hasRelevantChange = changedFields.some((field) =>
relevantFields.has(field),
@ -181,9 +179,7 @@ const gridOptions: VxeGridProps<any> = {
const currentFormValues = gridApi?.formApi ? await gridApi.formApi.getValues() : {};
//
let deviceId = currentFormValues.DeviceId || '';
let dataBaseName = '';
const deviceType = currentFormValues.DeviceType || '';
let deviceAddress = currentFormValues.DeviceId || '';
// 使
const deviceInfo =
@ -193,15 +189,7 @@ const gridOptions: VxeGridProps<any> = {
: null);
if (deviceInfo) {
dataBaseName = deviceInfo.businessSystemName || '';
// id
if (Number(deviceType) === 10) {
// 使 focusId
deviceId = deviceInfo.focusId || deviceId;
} else {
// 使 meterId
deviceId = deviceInfo.meterId || deviceId;
}
deviceAddress = deviceInfo.deviceAddress || deviceAddress;
}
//
@ -209,10 +197,8 @@ const gridOptions: VxeGridProps<any> = {
pageIndex: page.currentPage,
pageSize: page.pageSize,
SearchKeyword: currentFormValues.SearchKeyword || '',
DeviceType: deviceType,
IoTDataType: currentFormValues.IoTDataType || '',
DeviceId: deviceId,
DataBaseName: dataBaseName || currentFormValues.DataBaseName || '',
DeviceId: deviceAddress, // 使
StartCreationTime: formatDate(currentFormValues.StartCreationTime),
EndCreationTime: formatDate(currentFormValues.EndCreationTime),
};

View File

@ -8,72 +8,6 @@ import { getCommonGetSelectList } from '#/api-client';
import { $t } from '#/locales';
export const querySchema = computed(() => [
{
component: 'ApiSelect',
fieldName: 'DataBaseName',
label: $t('abp.IoTDBBase.DataBaseName'),
componentProps: {
api: getCommonGetSelectList,
params: {
query: {
typeName: 'BusinessSystemEnum',
},
},
labelField: 'secondValue',
valueField: 'value',
optionsPropName: 'options',
immediate: true,
afterFetch: (res: any) => {
// 确保返回的是数组格式
if (Array.isArray(res)) {
return res;
}
// 如果是包装在 items 中的,提取出来
if (res && Array.isArray(res.items)) {
return res.items;
}
// 如果是包装在 data 中的,提取出来
if (res && Array.isArray(res.data)) {
return res.data;
}
// 如果都不是,返回空数组
return [];
},
},
},
{
component: 'ApiSelect',
fieldName: 'DeviceType',
label: $t('abp.IoTDBBase.DeviceType'),
componentProps: {
api: getCommonGetSelectList,
params: {
query: {
typeName: 'MeterTypeEnum',
},
},
labelField: 'value',
valueField: 'key',
optionsPropName: 'options',
immediate: true,
afterFetch: (res: any) => {
// 确保返回的是数组格式
if (Array.isArray(res)) {
return res;
}
// 如果是包装在 items 中的,提取出来
if (res && Array.isArray(res.items)) {
return res.items;
}
// 如果是包装在 data 中的,提取出来
if (res && Array.isArray(res.data)) {
return res.data;
}
// 如果都不是,返回空数组
return [];
},
},
},
{
component: 'ApiSelect',
fieldName: 'IoTDataType',
@ -158,12 +92,7 @@ export const tableSchema: any = computed((): VxeGridProps['columns'] => [
return cellValue ? dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss') : '';
},
},
{
field: 'deviceType',
title: $t('abp.IoTDBBase.DeviceType'),
minWidth: '120',
slots: {},
},
{
field: 'ioTDataType',
title: $t('abp.IoTDBBase.IoTDataType'),

View File

@ -58,9 +58,6 @@ const [Grid] = useVbenVxeGrid({ formOptions, gridOptions });
<template>
<Page auto-content-height>
<Grid>
<template #isdeviceType="{ row }">
{{ row.deviceType }}
</template>
<template #ismanualOrNot="{ row }">
<component :is="h(Tag, { color: row.manualOrNot ? 'green' : 'red' }, () =>
row.manualOrNot ? $t('common.yes') : $t('common.no'),

View File

@ -19,28 +19,11 @@ export const querySchema = computed(() => [
export const tableSchema: any = computed((): VxeGridProps['columns'] => [
{ title: $t('common.seq'), type: 'seq', width: 50 },
{ field: 'dataBaseName', title: $t('abp.log.dataBaseName'), minWidth: '150' },
{
field: 'projectId',
title: $t('abp.log.projectId'),
minWidth: '150',
},
{
field: 'meterAddress',
title: $t('abp.meters.meterAddress'),
minWidth: '150',
},
{
field: 'focusAddress',
field: 'deviceAddress',
title: $t('abp.focus.focusAddress'),
minWidth: '100',
},
{
field: 'deviceType',
title: $t('abp.log.deviceType'),
minWidth: '100',
slots: { default: 'isdeviceType' },
},
{
field: 'timestamps',
title: $t('abp.log.timestamps'),