Commit 04de33d925bf1509979fce821ee93590a1a38578

Authored by ww
1 parent ac6ad4c5

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

  1 +import { Tag } from 'ant-design-vue';
  2 +import { h } from 'vue';
1 3 import { findDictItemByCode } from '/@/api/system/dict';
2 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 25 export const columnSchema: BasicColumn[] = [
5 26 {
6 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 34 title: '标识符',
... ... @@ -18,6 +42,15 @@ export const columnSchema: BasicColumn[] = [
18 42 {
19 43 title: '事件类型',
20 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 56 title: '输出参数',
... ...
... ... @@ -29,11 +29,16 @@
29 29 baseColProps: { span: 6 },
30 30 labelWidth: 80,
31 31 schemas: formSchemas,
32   - fieldMapToTime: [['dateRange', ['startTime', 'endTime']]],
  32 + fieldMapToTime: [['dateRange', ['startTime', 'endTime'], 'YYYY-MM-DD HH:mm:ss']],
33 33 },
34 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 39 return {
36   - ...params,
  40 + ..._params,
  41 + page,
37 42 startTime: params.startTime ? new Date(params.startTime).getTime() : params.startTime,
38 43 endTime: params.endTime ? new Date(params.endTime).getTime() : params.endTime,
39 44 tbDeviceId: props.tbDeviceId,
... ... @@ -43,22 +48,16 @@
43 48
44 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 53 openModal(true);
55 54 };
56 55 </script>
57 56
58 57 <template>
59 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 61 <EyeOutlined class="svg:text-blue-500" />
63 62 <span class="ml-2">详情</span>
64 63 </span>
... ...