Commit 04de33d925bf1509979fce821ee93590a1a38578

Authored by ww
1 parent ac6ad4c5

fix: 设备列表事件管理表格数据未格式化

  1 +import { Tag } from 'ant-design-vue';
  2 +import { h } from 'vue';
1 import { findDictItemByCode } from '/@/api/system/dict'; 3 import { findDictItemByCode } from '/@/api/system/dict';
2 import { BasicColumn, FormSchema } from '/@/components/Table'; 4 import { BasicColumn, FormSchema } from '/@/components/Table';
  5 +import { formatToDateTime } from '/@/utils/dateUtil';
  6 +
  7 +enum EventType {
  8 + ERROR = 'ERROR',
  9 + INFO = 'INFO',
  10 + ALERT = 'ALERT',
  11 +}
  12 +
  13 +enum EventTypeColor {
  14 + ERROR = 'error',
  15 + INFO = 'warning',
  16 + ALERT = 'default',
  17 +}
  18 +
  19 +enum EventTypeName {
  20 + ERROR = '故障',
  21 + INFO = '信息',
  22 + ALERT = '告警',
  23 +}
3 24
4 export const columnSchema: BasicColumn[] = [ 25 export const columnSchema: BasicColumn[] = [
5 { 26 {
6 title: '时间', 27 title: '时间',
7 - dataIndex: 'time', 28 + dataIndex: 'eventTime',
  29 + format(text) {
  30 + return formatToDateTime(text, 'YYYY-MM-DD HH:mm:ss');
  31 + },
8 }, 32 },
9 { 33 {
10 title: '标识符', 34 title: '标识符',
@@ -18,6 +42,15 @@ export const columnSchema: BasicColumn[] = [ @@ -18,6 +42,15 @@ export const columnSchema: BasicColumn[] = [
18 { 42 {
19 title: '事件类型', 43 title: '事件类型',
20 dataIndex: 'eventType', 44 dataIndex: 'eventType',
  45 + customRender({ text }) {
  46 + return h(
  47 + Tag,
  48 + {
  49 + color: EventTypeColor[text as EventType],
  50 + },
  51 + () => EventTypeName[text as EventType]
  52 + );
  53 + },
21 }, 54 },
22 { 55 {
23 title: '输出参数', 56 title: '输出参数',
@@ -29,11 +29,16 @@ @@ -29,11 +29,16 @@
29 baseColProps: { span: 6 }, 29 baseColProps: { span: 6 },
30 labelWidth: 80, 30 labelWidth: 80,
31 schemas: formSchemas, 31 schemas: formSchemas,
32 - fieldMapToTime: [['dateRange', ['startTime', 'endTime']]], 32 + fieldMapToTime: [['dateRange', ['startTime', 'endTime'], 'YYYY-MM-DD HH:mm:ss']],
33 }, 33 },
34 beforeFetch: (params: EventManageRequest) => { 34 beforeFetch: (params: EventManageRequest) => {
  35 + const page = params.page - 1 < 0 ? 0 : params.page - 1;
  36 + const _params = Object.keys(params)
  37 + .filter((key) => params[key])
  38 + .reduce((prev, next) => ({ ...prev, [next]: params[next] }), {});
35 return { 39 return {
36 - ...params, 40 + ..._params,
  41 + page,
37 startTime: params.startTime ? new Date(params.startTime).getTime() : params.startTime, 42 startTime: params.startTime ? new Date(params.startTime).getTime() : params.startTime,
38 endTime: params.endTime ? new Date(params.endTime).getTime() : params.endTime, 43 endTime: params.endTime ? new Date(params.endTime).getTime() : params.endTime,
39 tbDeviceId: props.tbDeviceId, 44 tbDeviceId: props.tbDeviceId,
@@ -43,22 +48,16 @@ @@ -43,22 +48,16 @@
43 48
44 const [registerModal, { openModal }] = useModal(); 49 const [registerModal, { openModal }] = useModal();
45 50
46 - const handleViewDetail = () => {  
47 - outputData.value = JSON.stringify(  
48 - {  
49 - test: '123',  
50 - },  
51 - null,  
52 - 2  
53 - ); 51 + const handleViewDetail = (record: Record<'eventValue', Recordable>) => {
  52 + outputData.value = JSON.stringify(record.eventValue, null, 2);
54 openModal(true); 53 openModal(true);
55 }; 54 };
56 </script> 55 </script>
57 56
58 <template> 57 <template>
59 <BasicTable class="event-manage-table" @register="register"> 58 <BasicTable class="event-manage-table" @register="register">
60 - <template #outputParams>  
61 - <span class="cursor-pointer text-blue-500" @click="handleViewDetail"> 59 + <template #outputParams="{ record }">
  60 + <span class="cursor-pointer text-blue-500" @click="handleViewDetail(record)">
62 <EyeOutlined class="svg:text-blue-500" /> 61 <EyeOutlined class="svg:text-blue-500" />
63 <span class="ml-2">详情</span> 62 <span class="ml-2">详情</span>
64 </span> 63 </span>