Showing
7 changed files
with
61 additions
and
23 deletions
src/api/device/eventManage.ts
0 → 100644
| 1 | +import { EventManageRequest } from './model/eventManageModel'; | |
| 2 | +import { defHttp } from '/@/utils/http/axios'; | |
| 3 | +enum EventManage { | |
| 4 | + LIST = '/event', | |
| 5 | +} | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * @description 获取事件管理列表 | |
| 9 | + * @param params | |
| 10 | + * @returns | |
| 11 | + */ | |
| 12 | +export const getEventManageListRecord = (params: EventManageRequest) => { | |
| 13 | + return defHttp.get({ | |
| 14 | + url: EventManage.LIST, | |
| 15 | + params, | |
| 16 | + }); | |
| 17 | +}; | ... | ... |
src/api/device/model/eventManageModel.ts
0 → 100644
| ... | ... | @@ -49,7 +49,7 @@ |
| 49 | 49 | <!-- 网关设备并且是TBox --> |
| 50 | 50 | |
| 51 | 51 | <TabPane key="eventManage" tab="事件管理"> |
| 52 | - <EventManage /> | |
| 52 | + <EventManage :tbDeviceId="deviceDetail.tbDeviceId" /> | |
| 53 | 53 | </TabPane> |
| 54 | 54 | </Tabs> |
| 55 | 55 | </BasicDrawer> |
| ... | ... | @@ -70,6 +70,7 @@ |
| 70 | 70 | // import HistoryData from '../tabs/HistoryData.vue'; |
| 71 | 71 | import ModelOfMatter from '../tabs/ModelOfMatter.vue'; |
| 72 | 72 | import EventManage from '../tabs/EventManage/index.vue'; |
| 73 | + import { DeviceRecord } from '/@/api/device/model/deviceModel'; | |
| 73 | 74 | |
| 74 | 75 | export default defineComponent({ |
| 75 | 76 | name: 'DeviceModal', |
| ... | ... | @@ -93,7 +94,7 @@ |
| 93 | 94 | const activeKey = ref('1'); |
| 94 | 95 | const size = ref('small'); |
| 95 | 96 | const deviceDetailRef = ref(); |
| 96 | - const deviceDetail = ref<any>({}); | |
| 97 | + const deviceDetail = ref<DeviceRecord>({} as unknown as DeviceRecord); | |
| 97 | 98 | const tbDeviceId = ref(''); |
| 98 | 99 | // 详情回显 |
| 99 | 100 | const [register] = useDrawerInner(async (data) => { | ... | ... |
| ... | ... | @@ -8,7 +8,7 @@ export const columnSchema: BasicColumn[] = [ |
| 8 | 8 | }, |
| 9 | 9 | { |
| 10 | 10 | title: '标识符', |
| 11 | - dataIndex: 'identifier', | |
| 11 | + dataIndex: 'eventIdentifier', | |
| 12 | 12 | helpMessage: ['标识符格式为模块标识符: 功能定义标识符'], |
| 13 | 13 | }, |
| 14 | 14 | { |
| ... | ... | @@ -28,15 +28,17 @@ export const columnSchema: BasicColumn[] = [ |
| 28 | 28 | |
| 29 | 29 | export const formSchemas: FormSchema[] = [ |
| 30 | 30 | { |
| 31 | - field: 'identifier', | |
| 31 | + field: 'eventIdentifier', | |
| 32 | 32 | label: '标识符', |
| 33 | 33 | component: 'Input', |
| 34 | + componentProps: { | |
| 35 | + placeholder: '请输入标识符', | |
| 36 | + }, | |
| 34 | 37 | }, |
| 35 | 38 | { |
| 36 | - field: 'alarmType', | |
| 39 | + field: 'eventType', | |
| 37 | 40 | label: '告警类型', |
| 38 | 41 | component: 'ApiSelect', |
| 39 | - defaultValue: 'INFO', | |
| 40 | 42 | componentProps: { |
| 41 | 43 | placeholder: '请选择事件类型', |
| 42 | 44 | api: findDictItemByCode, |
| ... | ... | @@ -52,5 +54,8 @@ export const formSchemas: FormSchema[] = [ |
| 52 | 54 | label: '时间范围', |
| 53 | 55 | component: 'RangePicker', |
| 54 | 56 | colProps: { span: 10 }, |
| 57 | + componentProps: { | |
| 58 | + showTime: true, | |
| 59 | + }, | |
| 55 | 60 | }, |
| 56 | 61 | ]; | ... | ... |
| ... | ... | @@ -2,13 +2,16 @@ |
| 2 | 2 | import { BasicTable, useTable } from '/@/components/Table'; |
| 3 | 3 | import { formSchemas, columnSchema } from './config'; |
| 4 | 4 | import { BasicModal, useModal } from '/@/components/Modal'; |
| 5 | - import { Textarea } from 'ant-design-vue'; | |
| 5 | + import { Input } from 'ant-design-vue'; | |
| 6 | 6 | import { ref } from 'vue'; |
| 7 | - import { formatToDateTime } from '/@/utils/dateUtil'; | |
| 8 | 7 | import { EyeOutlined } from '@ant-design/icons-vue'; |
| 8 | + import { getEventManageListRecord } from '/@/api/device/eventManage'; | |
| 9 | + import { EventManageRequest } from '/@/api/device/model/eventManageModel'; | |
| 9 | 10 | |
| 10 | 11 | const outputData = ref<string>(); |
| 11 | 12 | |
| 13 | + const props = defineProps<{ tbDeviceId: string }>(); | |
| 14 | + | |
| 12 | 15 | const [register] = useTable({ |
| 13 | 16 | columns: columnSchema, |
| 14 | 17 | size: 'small', |
| ... | ... | @@ -16,24 +19,25 @@ |
| 16 | 19 | useSearchForm: true, |
| 17 | 20 | showTableSetting: true, |
| 18 | 21 | bordered: true, |
| 19 | - dataSource: [ | |
| 20 | - { | |
| 21 | - time: formatToDateTime(new Date()), | |
| 22 | - identifier: '标识符', | |
| 23 | - eventName: '事件名', | |
| 24 | - eventType: '告警', | |
| 25 | - outputParams: { test: 1 }, | |
| 26 | - }, | |
| 27 | - ], | |
| 22 | + api: getEventManageListRecord, | |
| 23 | + fetchSetting: { | |
| 24 | + totalField: 'totalElements', | |
| 25 | + listField: 'data', | |
| 26 | + }, | |
| 28 | 27 | formConfig: { |
| 29 | 28 | layout: 'inline', |
| 30 | 29 | baseColProps: { span: 6 }, |
| 31 | 30 | labelWidth: 80, |
| 32 | 31 | schemas: formSchemas, |
| 32 | + fieldMapToTime: [['dateRange', ['startTime', 'endTime']]], | |
| 33 | 33 | }, |
| 34 | - handleSearchInfoFn: (params: Recordable) => { | |
| 35 | - // console.log(params); | |
| 36 | - return params; | |
| 34 | + beforeFetch: (params: EventManageRequest) => { | |
| 35 | + return { | |
| 36 | + ...params, | |
| 37 | + startTime: params.startTime ? new Date(params.startTime).getTime() : params.startTime, | |
| 38 | + endTime: params.endTime ? new Date(params.endTime).getTime() : params.endTime, | |
| 39 | + tbDeviceId: props.tbDeviceId, | |
| 40 | + }; | |
| 37 | 41 | }, |
| 38 | 42 | }); |
| 39 | 43 | |
| ... | ... | @@ -61,7 +65,7 @@ |
| 61 | 65 | </template> |
| 62 | 66 | </BasicTable> |
| 63 | 67 | <BasicModal title="输出参数" @register="registerModal"> |
| 64 | - <Textarea v-model:value="outputData" :autosize="true" /> | |
| 68 | + <Input.TextArea v-model:value="outputData" :autosize="true" /> | |
| 65 | 69 | </BasicModal> |
| 66 | 70 | </template> |
| 67 | 71 | ... | ... |
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | import HistoryData from './HistoryData.vue'; |
| 14 | 14 | import { BasicModal, useModal } from '/@/components/Modal'; |
| 15 | 15 | import { getDeviceAttrs } from '/@/api/device/deviceManager'; |
| 16 | - import { DeviceModelOfMatterAttrs } from '/@/api/device/model/deviceModel'; | |
| 16 | + import { DeviceModelOfMatterAttrs, DeviceRecord } from '/@/api/device/model/deviceModel'; | |
| 17 | 17 | import { computed } from '@vue/reactivity'; |
| 18 | 18 | import { Specs, StructJSON } from '/@/api/device/model/modelOfMatterModel'; |
| 19 | 19 | import { isArray, isObject } from '/@/utils/is'; |
| ... | ... | @@ -34,7 +34,7 @@ |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 | const props = defineProps<{ |
| 37 | - deviceDetail: Record<'tbDeviceId' | 'profileId' | 'id' | 'deviceProfileId', string>; | |
| 37 | + deviceDetail: DeviceRecord; | |
| 38 | 38 | }>(); |
| 39 | 39 | |
| 40 | 40 | const grid = { | ... | ... |