Showing
6 changed files
with
47 additions
and
6 deletions
| ... | ... | @@ -2,6 +2,7 @@ import { DeviceProfileModel } from '../../device/model/deviceModel'; |
| 2 | 2 | import { HistoryData } from './model'; |
| 3 | 3 | import { defHttp } from '/@/utils/http/axios'; |
| 4 | 4 | import { isString } from '/@/utils/is'; |
| 5 | +import { OrderByEnum } from '/@/views/device/localtion/cpns/TimePeriodForm/config'; | |
| 5 | 6 | |
| 6 | 7 | // 获取设备配置 |
| 7 | 8 | export const getDeviceProfile = (deviceType?: string) => { |
| ... | ... | @@ -12,11 +13,11 @@ export const getDeviceProfile = (deviceType?: string) => { |
| 12 | 13 | }; |
| 13 | 14 | |
| 14 | 15 | // 获取历史数据 |
| 15 | -export const getDeviceHistoryInfo = (params: Recordable, orderBy?: string) => { | |
| 16 | +export const getDeviceHistoryInfo = (params: Recordable, orderBy = OrderByEnum.DESC) => { | |
| 16 | 17 | return defHttp.get<HistoryData>( |
| 17 | 18 | { |
| 18 | 19 | url: `/plugins/telemetry/DEVICE/${params.entityId}/values/timeseries`, |
| 19 | - params: { ...params, entityId: null, orderBy: orderBy || 'DESC' }, | |
| 20 | + params: { orderBy, ...params, entityId: null }, | |
| 20 | 21 | }, |
| 21 | 22 | { |
| 22 | 23 | joinPrefix: false, | ... | ... |
| ... | ... | @@ -5,7 +5,10 @@ |
| 5 | 5 | import { useECharts } from '/@/hooks/web/useECharts'; |
| 6 | 6 | import { AggregateDataEnum, selectDeviceAttrSchema } from '/@/views/device/localtion/config.data'; |
| 7 | 7 | import { useTimePeriodForm } from '/@/views/device/localtion/cpns/TimePeriodForm'; |
| 8 | - import { defaultSchemas } from '/@/views/device/localtion/cpns/TimePeriodForm/config'; | |
| 8 | + import { | |
| 9 | + defaultSchemas, | |
| 10 | + OrderByEnum, | |
| 11 | + } from '/@/views/device/localtion/cpns/TimePeriodForm/config'; | |
| 9 | 12 | import TimePeriodForm from '/@/views/device/localtion/cpns/TimePeriodForm/TimePeriodForm.vue'; |
| 10 | 13 | import { useGridLayout } from '/@/hooks/component/useGridLayout'; |
| 11 | 14 | import { ColEx } from '/@/components/Form/src/types'; |
| ... | ... | @@ -184,7 +187,6 @@ |
| 184 | 187 | if (props.attr) { |
| 185 | 188 | method.setFieldsValue({ keys: props.attr }); |
| 186 | 189 | const attrInfo = unref(deviceAttrs).find((item) => item.identifier === props.attr); |
| 187 | - console.log({ attrInfo }); | |
| 188 | 190 | if ( |
| 189 | 191 | [DataTypeEnum.IS_STRING, DataTypeEnum.IS_STRUCT].includes( |
| 190 | 192 | attrInfo?.detail.dataType.type as unknown as DataTypeEnum |
| ... | ... | @@ -198,7 +200,7 @@ |
| 198 | 200 | } catch (error) {} |
| 199 | 201 | }; |
| 200 | 202 | |
| 201 | - const openHistoryPanel = async (orderBy?: string) => { | |
| 203 | + const openHistoryPanel = async (orderBy = OrderByEnum.ASC) => { | |
| 202 | 204 | await nextTick(); |
| 203 | 205 | method.updateSchema({ |
| 204 | 206 | field: 'keys', | ... | ... |
| ... | ... | @@ -32,13 +32,14 @@ export function useHistoryData() { |
| 32 | 32 | }; |
| 33 | 33 | |
| 34 | 34 | function getSearchParams(value: Partial<Record<SchemaFiled, string>>) { |
| 35 | - const { startTs, endTs, interval, agg, limit, keys, way, deviceId } = value; | |
| 35 | + const { startTs, endTs, interval, agg, limit, keys, way, deviceId, orderBy } = value; | |
| 36 | 36 | const basicRecord = { |
| 37 | 37 | entityId: deviceId, |
| 38 | 38 | keys: keys ? keys : unref(getDeviceKeys).join(), |
| 39 | 39 | interval, |
| 40 | 40 | agg, |
| 41 | 41 | limit, |
| 42 | + orderBy, | |
| 42 | 43 | }; |
| 43 | 44 | if (way === QueryWay.LATEST) { |
| 44 | 45 | return Object.assign(basicRecord, { | ... | ... |
| ... | ... | @@ -21,6 +21,16 @@ export enum SchemaFiled { |
| 21 | 21 | ORDER_BY = 'orderBy', |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | +export enum OrderByEnum { | |
| 25 | + DESC = 'DESC', | |
| 26 | + ASC = 'ASC', | |
| 27 | +} | |
| 28 | + | |
| 29 | +export enum OrderByNameEnum { | |
| 30 | + DESC = '降序', | |
| 31 | + ASC = '升序', | |
| 32 | +} | |
| 33 | + | |
| 24 | 34 | export enum AggregateDataEnum { |
| 25 | 35 | MIN = 'MIN', |
| 26 | 36 | MAX = 'MAX', |
| ... | ... | @@ -31,6 +41,18 @@ export enum AggregateDataEnum { |
| 31 | 41 | } |
| 32 | 42 | export const defaultSchemas: FormSchema[] = [ |
| 33 | 43 | { |
| 44 | + field: SchemaFiled.ORDER_BY, | |
| 45 | + label: '数据排序', | |
| 46 | + component: 'Select', | |
| 47 | + defaultValue: OrderByEnum.ASC, | |
| 48 | + componentProps: { | |
| 49 | + options: Object.values(OrderByEnum).map((value) => ({ | |
| 50 | + value, | |
| 51 | + label: OrderByNameEnum[value], | |
| 52 | + })), | |
| 53 | + }, | |
| 54 | + }, | |
| 55 | + { | |
| 34 | 56 | field: SchemaFiled.WAY, |
| 35 | 57 | label: '查询方式', |
| 36 | 58 | component: 'RadioGroup', | ... | ... |
| ... | ... | @@ -8,6 +8,7 @@ import { |
| 8 | 8 | getPacketIntervalByValue, |
| 9 | 9 | intervalOption, |
| 10 | 10 | } from '/@/views/device/localtion/cpns/TimePeriodForm/helper'; |
| 11 | +import { OrderByEnum, OrderByNameEnum } from '/@/views/device/localtion/cpns/TimePeriodForm/config'; | |
| 11 | 12 | export enum QueryWay { |
| 12 | 13 | LATEST = 'latest', |
| 13 | 14 | TIME_PERIOD = 'timePeriod', |
| ... | ... | @@ -38,6 +39,18 @@ export enum AggregateDataEnum { |
| 38 | 39 | export const formSchema = (): FormSchema[] => { |
| 39 | 40 | return [ |
| 40 | 41 | { |
| 42 | + field: SchemaFiled.ORDER_BY, | |
| 43 | + label: '数据排序', | |
| 44 | + component: 'Select', | |
| 45 | + defaultValue: OrderByEnum.ASC, | |
| 46 | + componentProps: { | |
| 47 | + options: Object.values(OrderByEnum).map((value) => ({ | |
| 48 | + value, | |
| 49 | + label: OrderByNameEnum[value], | |
| 50 | + })), | |
| 51 | + }, | |
| 52 | + }, | |
| 53 | + { | |
| 41 | 54 | field: SchemaFiled.DEVICE_ID, |
| 42 | 55 | label: '设备名称', |
| 43 | 56 | component: 'Select', | ... | ... |
| ... | ... | @@ -22,6 +22,7 @@ |
| 22 | 22 | import { ModalParamsType } from '/#/utils'; |
| 23 | 23 | import { WidgetDataType } from '../../hooks/useDataSource'; |
| 24 | 24 | import { ExtraDataSource } from '../../types'; |
| 25 | + import { OrderByEnum } from '/@/views/device/localtion/cpns/TimePeriodForm/config'; | |
| 25 | 26 | |
| 26 | 27 | type DeviceOption = Record<'label' | 'value' | 'organizationId', string>; |
| 27 | 28 | |
| ... | ... | @@ -211,6 +212,7 @@ |
| 211 | 212 | endTs: Date.now(), |
| 212 | 213 | agg: AggregateDataEnum.NONE, |
| 213 | 214 | limit: 7, |
| 215 | + orderBy: OrderByEnum.ASC, | |
| 214 | 216 | }); |
| 215 | 217 | historyData.value = getTableHistoryData(res); |
| 216 | 218 | // 判断对象是否为空 | ... | ... |