Showing
52 changed files
with
762 additions
and
433 deletions
| 1 | -import { DeviceInfoItemType, DeviceTypeItem } from './model'; | 1 | +import { DeviceInfoItemType, DeviceTypeItem, PageParams } from './model'; |
| 2 | import { TBPaginationResult } from '/#/axios'; | 2 | import { TBPaginationResult } from '/#/axios'; |
| 3 | import { defHttp } from '/@/utils/http/axios'; | 3 | import { defHttp } from '/@/utils/http/axios'; |
| 4 | 4 | ||
| @@ -8,6 +8,17 @@ enum Api { | @@ -8,6 +8,17 @@ enum Api { | ||
| 8 | TENANT_QUEUE = '/tenant/queues', | 8 | TENANT_QUEUE = '/tenant/queues', |
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | +enum Entity { | ||
| 12 | + DEVICES = '/tenant/devices', | ||
| 13 | + ASSETS = '/tenant/assets', | ||
| 14 | + ENTITY_VIEW = '/tenant/entityViews', | ||
| 15 | + TENANT = '/tenant', | ||
| 16 | + CUSTOMER = '/customers', | ||
| 17 | + DASHBOARD = '/tenant/dashboards', | ||
| 18 | + USER = '/users', | ||
| 19 | + EDGE = '/tenant/edges', | ||
| 20 | +} | ||
| 21 | + | ||
| 11 | export const getDeviceInfos = () => { | 22 | export const getDeviceInfos = () => { |
| 12 | return defHttp.get<TBPaginationResult<DeviceInfoItemType>>( | 23 | return defHttp.get<TBPaginationResult<DeviceInfoItemType>>( |
| 13 | { | 24 | { |
| @@ -35,3 +46,99 @@ export const getTenantQueue = (params: Recordable) => { | @@ -35,3 +46,99 @@ export const getTenantQueue = (params: Recordable) => { | ||
| 35 | { joinPrefix: false } | 46 | { joinPrefix: false } |
| 36 | ); | 47 | ); |
| 37 | }; | 48 | }; |
| 49 | + | ||
| 50 | +export const getEntityDevice = (params: PageParams) => { | ||
| 51 | + return defHttp.get( | ||
| 52 | + { | ||
| 53 | + url: Entity.DEVICES, | ||
| 54 | + params, | ||
| 55 | + }, | ||
| 56 | + { | ||
| 57 | + joinPrefix: false, | ||
| 58 | + } | ||
| 59 | + ); | ||
| 60 | +}; | ||
| 61 | + | ||
| 62 | +export const getEntityAssets = (params: PageParams) => { | ||
| 63 | + return defHttp.get( | ||
| 64 | + { | ||
| 65 | + url: Entity.ASSETS, | ||
| 66 | + params, | ||
| 67 | + }, | ||
| 68 | + { | ||
| 69 | + joinPrefix: false, | ||
| 70 | + } | ||
| 71 | + ); | ||
| 72 | +}; | ||
| 73 | + | ||
| 74 | +export const getEntityViews = (params: PageParams) => { | ||
| 75 | + return defHttp.get( | ||
| 76 | + { | ||
| 77 | + url: Entity.ENTITY_VIEW, | ||
| 78 | + params, | ||
| 79 | + }, | ||
| 80 | + { | ||
| 81 | + joinPrefix: false, | ||
| 82 | + } | ||
| 83 | + ); | ||
| 84 | +}; | ||
| 85 | + | ||
| 86 | +export const getEntityTenant = (params: Record<'tenantId', string>) => { | ||
| 87 | + return defHttp.get( | ||
| 88 | + { | ||
| 89 | + url: `${Entity.TENANT}/${params.tenantId}`, | ||
| 90 | + params, | ||
| 91 | + }, | ||
| 92 | + { | ||
| 93 | + joinPrefix: false, | ||
| 94 | + } | ||
| 95 | + ); | ||
| 96 | +}; | ||
| 97 | + | ||
| 98 | +export const getEntityCustomer = (params: PageParams) => { | ||
| 99 | + return defHttp.get( | ||
| 100 | + { | ||
| 101 | + url: Entity.CUSTOMER, | ||
| 102 | + params, | ||
| 103 | + }, | ||
| 104 | + { | ||
| 105 | + joinPrefix: false, | ||
| 106 | + } | ||
| 107 | + ); | ||
| 108 | +}; | ||
| 109 | + | ||
| 110 | +export const getEntityUser = (params: PageParams) => { | ||
| 111 | + return defHttp.get( | ||
| 112 | + { | ||
| 113 | + url: Entity.USER, | ||
| 114 | + params, | ||
| 115 | + }, | ||
| 116 | + { | ||
| 117 | + joinPrefix: false, | ||
| 118 | + } | ||
| 119 | + ); | ||
| 120 | +}; | ||
| 121 | + | ||
| 122 | +export const getEntityDashboard = (params: PageParams) => { | ||
| 123 | + return defHttp.get( | ||
| 124 | + { | ||
| 125 | + url: Entity.DASHBOARD, | ||
| 126 | + params, | ||
| 127 | + }, | ||
| 128 | + { | ||
| 129 | + joinPrefix: false, | ||
| 130 | + } | ||
| 131 | + ); | ||
| 132 | +}; | ||
| 133 | + | ||
| 134 | +export const getEntityEdge = (params: PageParams) => { | ||
| 135 | + return defHttp.get( | ||
| 136 | + { | ||
| 137 | + url: Entity.EDGE, | ||
| 138 | + params, | ||
| 139 | + }, | ||
| 140 | + { | ||
| 141 | + joinPrefix: false, | ||
| 142 | + } | ||
| 143 | + ); | ||
| 144 | +}; |
| @@ -44,3 +44,11 @@ export interface DeviceTypeItem { | @@ -44,3 +44,11 @@ export interface DeviceTypeItem { | ||
| 44 | entityType: string; | 44 | entityType: string; |
| 45 | type: string; | 45 | type: string; |
| 46 | } | 46 | } |
| 47 | + | ||
| 48 | +export interface PageParams { | ||
| 49 | + pageSize?: number; | ||
| 50 | + page?: number; | ||
| 51 | + textSearch?: string; | ||
| 52 | + sortProperty?: string; | ||
| 53 | + sortOrder?: string; | ||
| 54 | +} |
| 1 | +import { RuleChainPaginationItemType } from './model/type'; | ||
| 2 | +import { TBPaginationResult } from '/#/axios'; | ||
| 1 | import { defHttp } from '/@/utils/http/axios'; | 3 | import { defHttp } from '/@/utils/http/axios'; |
| 2 | import { RuleChainType } from '/@/views/rule/designer/types/ruleNode'; | 4 | import { RuleChainType } from '/@/views/rule/designer/types/ruleNode'; |
| 3 | 5 | ||
| @@ -26,7 +28,7 @@ export const saveRuleChainData = (data: RuleChainType) => { | @@ -26,7 +28,7 @@ export const saveRuleChainData = (data: RuleChainType) => { | ||
| 26 | }; | 28 | }; |
| 27 | 29 | ||
| 28 | export const getRuleChains = (params: Recordable) => { | 30 | export const getRuleChains = (params: Recordable) => { |
| 29 | - return defHttp.get( | 31 | + return defHttp.get<TBPaginationResult<RuleChainPaginationItemType>>( |
| 30 | { | 32 | { |
| 31 | url: Api.GET_RULE_CHAINES, | 33 | url: Api.GET_RULE_CHAINES, |
| 32 | params, | 34 | params, |
| 1 | +export interface RuleChainPaginationItemType { | ||
| 2 | + id: Id; | ||
| 3 | + createdTime: number; | ||
| 4 | + additionalInfo?: AdditionalInfo; | ||
| 5 | + tenantId: Id; | ||
| 6 | + name: string; | ||
| 7 | + type: string; | ||
| 8 | + firstRuleNodeId: Id; | ||
| 9 | + root: boolean; | ||
| 10 | + debugMode: boolean; | ||
| 11 | + configuration: any; | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +export interface Id { | ||
| 15 | + entityType: string; | ||
| 16 | + id: string; | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +export interface AdditionalInfo { | ||
| 20 | + description: string; | ||
| 21 | +} |
| @@ -28,6 +28,7 @@ | @@ -28,6 +28,7 @@ | ||
| 28 | labelField?: string; | 28 | labelField?: string; |
| 29 | valueField?: string; | 29 | valueField?: string; |
| 30 | immediate?: boolean; | 30 | immediate?: boolean; |
| 31 | + searchField?: string; | ||
| 31 | queryEmptyDataAgin?: boolean; | 32 | queryEmptyDataAgin?: boolean; |
| 32 | onChangeHook?: ({ options }: OnChangeHookParams) => void; | 33 | onChangeHook?: ({ options }: OnChangeHookParams) => void; |
| 33 | dropdownVisibleChangeHook?: ({ options }: OnChangeHookParams) => void; | 34 | dropdownVisibleChangeHook?: ({ options }: OnChangeHookParams) => void; |
| @@ -36,6 +37,7 @@ | @@ -36,6 +37,7 @@ | ||
| 36 | resultField: '', | 37 | resultField: '', |
| 37 | labelField: 'label', | 38 | labelField: 'label', |
| 38 | valueField: 'value', | 39 | valueField: 'value', |
| 40 | + searchField: 'text', | ||
| 39 | immediate: true, | 41 | immediate: true, |
| 40 | queryEmptyDataAgin: true, | 42 | queryEmptyDataAgin: true, |
| 41 | } | 43 | } |
| @@ -55,16 +57,26 @@ | @@ -55,16 +57,26 @@ | ||
| 55 | return unref(options).reduce((prev, next: Recordable) => { | 57 | return unref(options).reduce((prev, next: Recordable) => { |
| 56 | if (next) { | 58 | if (next) { |
| 57 | const value = get(next, valueField); | 59 | const value = get(next, valueField); |
| 60 | + const label = get(next, labelField); | ||
| 58 | prev.push({ | 61 | prev.push({ |
| 59 | - label: next[labelField], | ||
| 60 | - value: numberToString ? `${value}` : value, | ||
| 61 | ...omit(next, [labelField, valueField]), | 62 | ...omit(next, [labelField, valueField]), |
| 63 | + label, | ||
| 64 | + value: numberToString ? `${value}` : value, | ||
| 62 | }); | 65 | }); |
| 63 | } | 66 | } |
| 64 | return prev; | 67 | return prev; |
| 65 | }, [] as OptionsItem[]); | 68 | }, [] as OptionsItem[]); |
| 66 | }); | 69 | }); |
| 67 | 70 | ||
| 71 | + const getBindProps = computed(() => { | ||
| 72 | + const { searchApi } = props; | ||
| 73 | + return { | ||
| 74 | + ...attrs, | ||
| 75 | + showSearch: true, | ||
| 76 | + filterOption: !searchApi, | ||
| 77 | + }; | ||
| 78 | + }); | ||
| 79 | + | ||
| 68 | watchEffect(() => { | 80 | watchEffect(() => { |
| 69 | props.immediate && fetch(); | 81 | props.immediate && fetch(); |
| 70 | }); | 82 | }); |
| @@ -125,7 +137,7 @@ | @@ -125,7 +137,7 @@ | ||
| 125 | 137 | ||
| 126 | const debounceSearchFunction = useDebounceFn(handleSearch, 300); | 138 | const debounceSearchFunction = useDebounceFn(handleSearch, 300); |
| 127 | async function handleSearch(params?: string) { | 139 | async function handleSearch(params?: string) { |
| 128 | - let { searchApi, api } = props; | 140 | + let { searchApi, api, searchField } = props; |
| 129 | if (!searchApi || !isFunction(searchApi)) { | 141 | if (!searchApi || !isFunction(searchApi)) { |
| 130 | if (!api || !isFunction(api)) return; | 142 | if (!api || !isFunction(api)) return; |
| 131 | searchApi = api; | 143 | searchApi = api; |
| @@ -133,7 +145,7 @@ | @@ -133,7 +145,7 @@ | ||
| 133 | options.value = []; | 145 | options.value = []; |
| 134 | try { | 146 | try { |
| 135 | loading.value = true; | 147 | loading.value = true; |
| 136 | - const res = await searchApi({ ...props.params, text: params }); | 148 | + const res = await searchApi({ ...props.params, [searchField]: params }); |
| 137 | if (Array.isArray(res)) { | 149 | if (Array.isArray(res)) { |
| 138 | options.value = res; | 150 | options.value = res; |
| 139 | emitChange(); | 151 | emitChange(); |
| @@ -154,8 +166,7 @@ | @@ -154,8 +166,7 @@ | ||
| 154 | <template> | 166 | <template> |
| 155 | <Select | 167 | <Select |
| 156 | @dropdownVisibleChange="handleFetch" | 168 | @dropdownVisibleChange="handleFetch" |
| 157 | - v-bind="attrs" | ||
| 158 | - show-search | 169 | + v-bind="getBindProps" |
| 159 | @change="handleChange" | 170 | @change="handleChange" |
| 160 | :options="getOptions" | 171 | :options="getOptions" |
| 161 | @search="debounceSearchFunction" | 172 | @search="debounceSearchFunction" |
| @@ -45,7 +45,7 @@ export enum EntityTypeNameEnum { | @@ -45,7 +45,7 @@ export enum EntityTypeNameEnum { | ||
| 45 | CUSTOMER = '客户', | 45 | CUSTOMER = '客户', |
| 46 | USER = '用户', | 46 | USER = '用户', |
| 47 | DASHBOARD = '仪表板', | 47 | DASHBOARD = '仪表板', |
| 48 | - EDGE = 'Edge', | 48 | + EDGE = '边缘', |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | /** | 51 | /** |
| @@ -56,30 +56,11 @@ export enum PerimeterTypeEnum { | @@ -56,30 +56,11 @@ export enum PerimeterTypeEnum { | ||
| 56 | CIRCLE = 'CIRCLE', | 56 | CIRCLE = 'CIRCLE', |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | -/** | ||
| 60 | - * @description Filter Range util | ||
| 61 | - */ | ||
| 62 | -export enum RangeUtilEnum { | ||
| 63 | - METER = 'METER', | ||
| 64 | - KILOMETER = 'KILOMETER', | ||
| 65 | - FOOT = 'FOOT', | ||
| 66 | - MILE = 'MILE', | ||
| 67 | - NAUTICAL_MILE = 'NAUTICAL_MILE', | ||
| 68 | -} | ||
| 69 | - | ||
| 70 | -export enum RangeUtilNameEnum { | ||
| 71 | - METER = 'Meter', | ||
| 72 | - KILOMETER = 'Kilometer', | ||
| 73 | - FOOT = 'Foot', | ||
| 74 | - MILE = 'Mile', | ||
| 75 | - NAUTICAL_MILE = 'Nautical mile', | ||
| 76 | -} | ||
| 77 | - | ||
| 78 | -export enum MessageTypesFilterEnum { | ||
| 79 | - POST_ATTRIBUTES = 'POST_ATTRIBUTES', | ||
| 80 | - POST_TELEMETRY = 'POST_TELEMETRY', | ||
| 81 | - RPC_REQUEST_FROM_DEVICE = 'RPC_REQUEST_FROM_DEVICE', | ||
| 82 | - RPC_REQUEST_TO_DEVICE = 'RPC_REQUEST_TO_DEVICE', | 59 | +export enum MessageTypesEnum { |
| 60 | + POST_ATTRIBUTES_REQUEST = 'POST_ATTRIBUTES_REQUEST', | ||
| 61 | + POST_TELEMETRY_REQUEST = 'POST_TELEMETRY_REQUEST', | ||
| 62 | + TO_SERVER_RPC_REQUEST = 'TO_SERVER_RPC_REQUEST', | ||
| 63 | + RPC_CALL_FROM_SERVER_TO_DEVICE = 'RPC_CALL_FROM_SERVER_TO_DEVICE', | ||
| 83 | ACTIVITY_EVENT = 'ACTIVITY_EVENT', | 64 | ACTIVITY_EVENT = 'ACTIVITY_EVENT', |
| 84 | INACTIVITY_EVENT = 'INACTIVITY_EVENT', | 65 | INACTIVITY_EVENT = 'INACTIVITY_EVENT', |
| 85 | CONNECT_EVENT = 'CONNECT_EVENT', | 66 | CONNECT_EVENT = 'CONNECT_EVENT', |
| @@ -100,11 +81,11 @@ export enum MessageTypesFilterEnum { | @@ -100,11 +81,11 @@ export enum MessageTypesFilterEnum { | ||
| 100 | RPC_FAILED = 'RPC_FAILED', | 81 | RPC_FAILED = 'RPC_FAILED', |
| 101 | } | 82 | } |
| 102 | 83 | ||
| 103 | -export enum MessageTypesFilterNameEnum { | ||
| 104 | - POST_ATTRIBUTES = 'Post attributes', | ||
| 105 | - POST_TELEMETRY = 'Post telemetry', | ||
| 106 | - RPC_REQUEST_FROM_DEVICE = 'RPC Request from Device', | ||
| 107 | - RPC_REQUEST_TO_DEVICE = 'RPC Request to Device', | 84 | +export enum MessageTypesNameEnum { |
| 85 | + POST_ATTRIBUTES_REQUEST = 'Post attributes', | ||
| 86 | + POST_TELEMETRY_REQUEST = 'Post telemetry', | ||
| 87 | + TO_SERVER_RPC_REQUEST = 'RPC Request from Device', | ||
| 88 | + RPC_CALL_FROM_SERVER_TO_DEVICE = 'RPC Request to Device', | ||
| 108 | ACTIVITY_EVENT = 'Activity Event', | 89 | ACTIVITY_EVENT = 'Activity Event', |
| 109 | INACTIVITY_EVENT = 'Inactivity Event', | 90 | INACTIVITY_EVENT = 'Inactivity Event', |
| 110 | CONNECT_EVENT = 'Connect Event', | 91 | CONNECT_EVENT = 'Connect Event', |
| @@ -124,6 +105,24 @@ export enum MessageTypesFilterNameEnum { | @@ -124,6 +105,24 @@ export enum MessageTypesFilterNameEnum { | ||
| 124 | RPC_TIMEOUT = 'RPC Timeout', | 105 | RPC_TIMEOUT = 'RPC Timeout', |
| 125 | RPC_FAILED = 'RPC Failed', | 106 | RPC_FAILED = 'RPC Failed', |
| 126 | } | 107 | } |
| 108 | +/** | ||
| 109 | + * @description Filter Range util | ||
| 110 | + */ | ||
| 111 | +export enum RangeUtilEnum { | ||
| 112 | + METER = 'METER', | ||
| 113 | + KILOMETER = 'KILOMETER', | ||
| 114 | + FOOT = 'FOOT', | ||
| 115 | + MILE = 'MILE', | ||
| 116 | + NAUTICAL_MILE = 'NAUTICAL_MILE', | ||
| 117 | +} | ||
| 118 | + | ||
| 119 | +export enum RangeUtilNameEnum { | ||
| 120 | + METER = 'Meter', | ||
| 121 | + KILOMETER = 'Kilometer', | ||
| 122 | + FOOT = 'Foot', | ||
| 123 | + MILE = 'Mile', | ||
| 124 | + NAUTICAL_MILE = 'Nautical mile', | ||
| 125 | +} | ||
| 127 | 126 | ||
| 128 | // Enrichment Customer details | 127 | // Enrichment Customer details |
| 129 | export enum DetailsListEnum { | 128 | export enum DetailsListEnum { |
| @@ -85,7 +85,7 @@ export enum DelayDeprecatedFieldsEnum { | @@ -85,7 +85,7 @@ export enum DelayDeprecatedFieldsEnum { | ||
| 85 | export enum DelayDeprecatedFieldsNameEnum { | 85 | export enum DelayDeprecatedFieldsNameEnum { |
| 86 | USE_METADATA_PERIOD_IN_SECONDS_PATTERNS = 'Use period in seconds pattern', | 86 | USE_METADATA_PERIOD_IN_SECONDS_PATTERNS = 'Use period in seconds pattern', |
| 87 | PERIOD_IN_SECONDS = 'Period in seconds', | 87 | PERIOD_IN_SECONDS = 'Period in seconds', |
| 88 | - PERIOD_IN_SECONDS_PATTERN = 'Period in seconds', | 88 | + PERIOD_IN_SECONDS_PATTERN = 'Period in seconds pattern', |
| 89 | MAX_PENDING_MSGS = 'Maximum pending messages', | 89 | MAX_PENDING_MSGS = 'Maximum pending messages', |
| 90 | } | 90 | } |
| 91 | 91 | ||
| @@ -131,8 +131,8 @@ export enum GeneratorFieldsNameEnum { | @@ -131,8 +131,8 @@ export enum GeneratorFieldsNameEnum { | ||
| 131 | MSG_COUNT = 'Message count(0 - unlimited)', | 131 | MSG_COUNT = 'Message count(0 - unlimited)', |
| 132 | PERIOD_IN_SECONDS = 'Period in seconds', | 132 | PERIOD_IN_SECONDS = 'Period in seconds', |
| 133 | JS_SCRIPT = 'Generate', | 133 | JS_SCRIPT = 'Generate', |
| 134 | - // ORIGINATOR_ID = 'Originator', | ||
| 135 | - ORIGINATOR_TYPE = 'Originator', | 134 | + // ORIGINATOR_ID = '资产', |
| 135 | + ORIGINATOR_TYPE = '类型', | ||
| 136 | } | 136 | } |
| 137 | 137 | ||
| 138 | // Gps geofencing events | 138 | // Gps geofencing events |
| @@ -71,6 +71,7 @@ export enum OriginatorFieldsNameEnum { | @@ -71,6 +71,7 @@ export enum OriginatorFieldsNameEnum { | ||
| 71 | 71 | ||
| 72 | // Enrichment originator telemetry | 72 | // Enrichment originator telemetry |
| 73 | export enum OriginatorTelemetryFieldsEnum { | 73 | export enum OriginatorTelemetryFieldsEnum { |
| 74 | + LATEST_TS_KEY_NAMES = 'latestTsKeyNames', | ||
| 74 | AGGREGATION = 'aggregation', | 75 | AGGREGATION = 'aggregation', |
| 75 | FETCH_MODE = 'fetchMode', | 76 | FETCH_MODE = 'fetchMode', |
| 76 | ORDER_BY = 'orderBy', | 77 | ORDER_BY = 'orderBy', |
| @@ -85,6 +86,7 @@ export enum OriginatorTelemetryFieldsEnum { | @@ -85,6 +86,7 @@ export enum OriginatorTelemetryFieldsEnum { | ||
| 85 | } | 86 | } |
| 86 | 87 | ||
| 87 | export enum OriginatorTelemetryFieldsNameEnum { | 88 | export enum OriginatorTelemetryFieldsNameEnum { |
| 89 | + LATEST_TS_KEY_NAMES = 'Latest timeseries', | ||
| 88 | AGGREGATION = '数据聚合功能', | 90 | AGGREGATION = '数据聚合功能', |
| 89 | FETCH_MODE = 'Fetch Mode', | 91 | FETCH_MODE = 'Fetch Mode', |
| 90 | ORDER_BY = 'Order by', | 92 | ORDER_BY = 'Order by', |
| @@ -102,11 +104,13 @@ export enum OriginatorTelemetryFieldsNameEnum { | @@ -102,11 +104,13 @@ export enum OriginatorTelemetryFieldsNameEnum { | ||
| 102 | export enum RelatedAttributesFieldsEnum { | 104 | export enum RelatedAttributesFieldsEnum { |
| 103 | RELATIONS_QUERY = 'relationsQuery', | 105 | RELATIONS_QUERY = 'relationsQuery', |
| 104 | ATTR_MAPPING = 'attrMapping', | 106 | ATTR_MAPPING = 'attrMapping', |
| 107 | + TELEMETRY = 'telemetry', | ||
| 105 | } | 108 | } |
| 106 | 109 | ||
| 107 | -export enum RelatedAttributesFieldNameEnum { | 110 | +export enum RelatedAttributesFieldsNameEnum { |
| 108 | RELATIONS_QUERY = 'Relations query', | 111 | RELATIONS_QUERY = 'Relations query', |
| 109 | ATTR_MAPPING = 'Attributes mapping', | 112 | ATTR_MAPPING = 'Attributes mapping', |
| 113 | + TELEMETRY = 'Latest telemetry', | ||
| 110 | } | 114 | } |
| 111 | 115 | ||
| 112 | // Enrichment Related device Attributes | 116 | // Enrichment Related device Attributes |
| @@ -144,6 +148,17 @@ export enum RelatedDeviceAttributeFieldsNameEnum { | @@ -144,6 +148,17 @@ export enum RelatedDeviceAttributeFieldsNameEnum { | ||
| 144 | DEVICE_TYPES = '设备类型', | 148 | DEVICE_TYPES = '设备类型', |
| 145 | } | 149 | } |
| 146 | 150 | ||
| 151 | +// Tenant attributes | ||
| 152 | +export enum TenantAttributesFieldsEnum { | ||
| 153 | + ATTR_MAPING = 'attrMapping', | ||
| 154 | + TELEMETRY = 'telemetry', | ||
| 155 | +} | ||
| 156 | + | ||
| 157 | +export enum TenantAttributesFieldsNameEnum { | ||
| 158 | + ATTR_MAPING = 'attrMapping', | ||
| 159 | + TELEMETRY = 'Latest telemetry', | ||
| 160 | +} | ||
| 161 | + | ||
| 147 | // Enrichment Tenant details | 162 | // Enrichment Tenant details |
| 148 | export enum TenantDetailsFieldsEnum { | 163 | export enum TenantDetailsFieldsEnum { |
| 149 | DETAILS_LIST = 'detailsList', | 164 | DETAILS_LIST = 'detailsList', |
| @@ -154,29 +169,3 @@ export enum TenantDetailsFieldsNameEnum { | @@ -154,29 +169,3 @@ export enum TenantDetailsFieldsNameEnum { | ||
| 154 | DETAILS_LIST = 'Add selected details to message metadata', | 169 | DETAILS_LIST = 'Add selected details to message metadata', |
| 155 | ADD_TO_METADATA = 'Select entity details', | 170 | ADD_TO_METADATA = 'Select entity details', |
| 156 | } | 171 | } |
| 157 | - | ||
| 158 | -export const EnrichmentCategoryFormFields = { | ||
| 159 | - ...CalculateDeltaFieldsEnum, | ||
| 160 | - ...CustomerAttributesFieldsEnum, | ||
| 161 | - ...CustomerDetailsFieldsEnum, | ||
| 162 | - ...OriginatorAttributesEnum, | ||
| 163 | - ...OriginatorFieldsEnum, | ||
| 164 | - ...OriginatorTelemetryFieldsEnum, | ||
| 165 | - ...RelatedAttributesFieldsEnum, | ||
| 166 | - ...RelatedDeviceAttributeFieldsEnum, | ||
| 167 | - ...TenantDetailsFieldsEnum, | ||
| 168 | -}; | ||
| 169 | - | ||
| 170 | -export const EnrichmentCategoryFormFieldsName = { | ||
| 171 | - ...CalculateDeltaFieldsNameEnum, | ||
| 172 | - ...CustomerAttributesFieldsNameEnum, | ||
| 173 | - ...CustomerDetailsFieldsNameEnum, | ||
| 174 | - ...OriginatorAttributesNameEnum, | ||
| 175 | - ...OriginatorFieldsNameEnum, | ||
| 176 | - ...OriginatorTelemetryFieldsNameEnum, | ||
| 177 | - ...RelatedAttributesFieldNameEnum, | ||
| 178 | - ...RelatedDeviceAttributeFieldsNameEnum, | ||
| 179 | - ...TenantDetailsFieldsNameEnum, | ||
| 180 | -}; | ||
| 181 | - | ||
| 182 | -export type EnrichmentCategoryType = typeof EnrichmentCategoryFormFields; |
| @@ -244,23 +244,23 @@ export enum RestApiCallFieldsEnum { | @@ -244,23 +244,23 @@ export enum RestApiCallFieldsEnum { | ||
| 244 | 244 | ||
| 245 | export enum RestApiCallFieldsNameEnum { | 245 | export enum RestApiCallFieldsNameEnum { |
| 246 | REST_ENDPOINT_URL_PATTERN = 'Endpoint URL pattern', | 246 | REST_ENDPOINT_URL_PATTERN = 'Endpoint URL pattern', |
| 247 | - REQUEST_METHOD = 'requestMethod', | ||
| 248 | - USE_SIMPLE_CLIENT_HTTP_FACTORY = 'useSimpleClientHttpFactory', | ||
| 249 | - IGNORE_REQUEST_BODY = 'ignoreRequestBody', | ||
| 250 | - ENABLE_PROXY = 'enableProxy', | ||
| 251 | - USE_SYSTEM_PROXY_PROPERTIES = 'useSystemProxyProperties', | ||
| 252 | - PROXY_SCHEME = 'proxyScheme', | ||
| 253 | - PROXY_HOST = 'proxyHost', | ||
| 254 | - PROXY_PORT = 'proxyPort', | ||
| 255 | - PROXY_USER = 'proxyUser', | ||
| 256 | - PROXY_PASSWORD = 'proxyPassword', | ||
| 257 | - READ_TIMEOUT_MS = 'readTimeoutMs', | ||
| 258 | - MAX_PARALLEL_REQUESTS_COUNT = 'maxParallelRequestsCount', | ||
| 259 | - HEADERS = 'headers', | ||
| 260 | - USE_REDIS_QUEUE_FOR_MSG_PERSISTENCE = 'useRedisQueueForMsgPersistence', | ||
| 261 | - TRIM_QUEUE = 'trimQueue', | ||
| 262 | - MAX_QUEUE_SIZE = 'maxQueueSize', | ||
| 263 | - CREDENTIALS = 'credentials', | 247 | + REQUEST_METHOD = 'Request method', |
| 248 | + USE_SIMPLE_CLIENT_HTTP_FACTORY = 'Use simple client HTTP factory', | ||
| 249 | + IGNORE_REQUEST_BODY = 'Without request body', | ||
| 250 | + ENABLE_PROXY = 'Enable proxy', | ||
| 251 | + USE_SYSTEM_PROXY_PROPERTIES = 'Use system proxy properties', | ||
| 252 | + PROXY_SCHEME = 'Proxy scheme', | ||
| 253 | + PROXY_HOST = 'Proxy host', | ||
| 254 | + PROXY_PORT = 'Proxy port', | ||
| 255 | + PROXY_USER = 'Proxy user', | ||
| 256 | + PROXY_PASSWORD = 'Proxy password', | ||
| 257 | + READ_TIMEOUT_MS = 'Read timeout in millis', | ||
| 258 | + MAX_PARALLEL_REQUESTS_COUNT = 'Max number of parallel request', | ||
| 259 | + HEADERS = 'Header', | ||
| 260 | + USE_REDIS_QUEUE_FOR_MSG_PERSISTENCE = 'Use redis queue for message persistence', | ||
| 261 | + TRIM_QUEUE = 'Trim redis queue', | ||
| 262 | + MAX_QUEUE_SIZE = 'Redis queue max size', | ||
| 263 | + CREDENTIALS = 'Credentials', | ||
| 264 | 264 | ||
| 265 | TYPE = 'Credentials type', | 265 | TYPE = 'Credentials type', |
| 266 | PASSWORD = 'Password', | 266 | PASSWORD = 'Password', |
| 1 | // Filter Check Alarm Status Fields | 1 | // Filter Check Alarm Status Fields |
| 2 | -export enum FilterCheckAlarmStatusFieldEnum { | 2 | +export enum CheckAlarmStatusFieldEnum { |
| 3 | ALARM_STATUS_LIST = 'alarmStatusList', | 3 | ALARM_STATUS_LIST = 'alarmStatusList', |
| 4 | } | 4 | } |
| 5 | 5 | ||
| 6 | -export enum FilterCheckAlarmStatusFieldNameEnum { | 6 | +export enum CheckAlarmStatusFieldNameEnum { |
| 7 | ALARM_STATUS_LIST = 'Alarm status filter', | 7 | ALARM_STATUS_LIST = 'Alarm status filter', |
| 8 | } | 8 | } |
| 9 | 9 | ||
| @@ -90,24 +90,11 @@ export enum ScriptFieldsNameEnum { | @@ -90,24 +90,11 @@ export enum ScriptFieldsNameEnum { | ||
| 90 | JS_SCRIPT = 'Filter', | 90 | JS_SCRIPT = 'Filter', |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | -export const FilterCategoryFormFields = { | ||
| 94 | - ...FilterCheckAlarmStatusFieldEnum, | ||
| 95 | - ...CheckExistenceFieldsEnum, | ||
| 96 | - ...CheckRelationFieldsEnum, | ||
| 97 | - ...GpsGeofencingFilterFieldsEnum, | ||
| 98 | - ...MessageTypeFieldsEnum, | ||
| 99 | - ...OriginatorTypeFieldsEnum, | ||
| 100 | - ...ScriptFieldsEnum, | ||
| 101 | -}; | ||
| 102 | - | ||
| 103 | -export const FilterCategoryFormFieldsName = { | ||
| 104 | - ...FilterCheckAlarmStatusFieldNameEnum, | ||
| 105 | - ...CheckExistenceFieldsNameEnum, | ||
| 106 | - ...CheckRelationFieldsNameEnum, | ||
| 107 | - ...GpsGeofencingFilterFieldsNameEnum, | ||
| 108 | - ...MessageTypeFieldsNameEnum, | ||
| 109 | - ...OriginatorTypeFieldsNameEnum, | ||
| 110 | - ...ScriptFieldsNameEnum, | ||
| 111 | -}; | 93 | +// Filter Switch |
| 94 | +export enum SwitchFieldsEnum { | ||
| 95 | + JS_SCRIPT = 'jsScript', | ||
| 96 | +} | ||
| 112 | 97 | ||
| 113 | -export type FilterCategoryFormType = typeof FilterCategoryFormFields; | 98 | +export enum SwitchFieldsNameEnum { |
| 99 | + JS_SCRIPT = 'Filter', | ||
| 100 | +} |
| 1 | import { CommonFields, CommonFieldsName } from './formField/common'; | 1 | import { CommonFields, CommonFieldsName } from './formField/common'; |
| 2 | -import { | ||
| 3 | - EnrichmentCategoryFormFields, | ||
| 4 | - EnrichmentCategoryFormFieldsName, | ||
| 5 | -} from './formField/enrichment'; | ||
| 6 | -import { FilterCategoryFormFields, FilterCategoryFormFieldsName } from './formField/filter'; | ||
| 7 | 2 | ||
| 8 | export enum FetchNodeComFlagTypeENum { | 3 | export enum FetchNodeComFlagTypeENum { |
| 9 | CONNECTION_MODAL = 'CONNECTION_MODAL', | 4 | CONNECTION_MODAL = 'CONNECTION_MODAL', |
| @@ -20,12 +15,8 @@ export enum EdgeBindDataFieldNameEnum { | @@ -20,12 +15,8 @@ export enum EdgeBindDataFieldNameEnum { | ||
| 20 | 15 | ||
| 21 | export const NodeBindDataFieldEnum = { | 16 | export const NodeBindDataFieldEnum = { |
| 22 | ...CommonFields, | 17 | ...CommonFields, |
| 23 | - ...FilterCategoryFormFields, | ||
| 24 | - ...EnrichmentCategoryFormFields, | ||
| 25 | }; | 18 | }; |
| 26 | 19 | ||
| 27 | export const NodeBindDataFieldNameEnum = { | 20 | export const NodeBindDataFieldNameEnum = { |
| 28 | ...CommonFieldsName, | 21 | ...CommonFieldsName, |
| 29 | - ...FilterCategoryFormFieldsName, | ||
| 30 | - ...EnrichmentCategoryFormFieldsName, | ||
| 31 | }; | 22 | }; |
| @@ -14,7 +14,7 @@ export function useInputNode() { | @@ -14,7 +14,7 @@ export function useInputNode() { | ||
| 14 | description: '规则链的逻辑输入,将传入消息转发到下一个相关规则节点。', | 14 | description: '规则链的逻辑输入,将传入消息转发到下一个相关规则节点。', |
| 15 | }, | 15 | }, |
| 16 | }, | 16 | }, |
| 17 | - { id, draggable: false } | 17 | + { id, draggable: false, selectable: false } |
| 18 | ); | 18 | ); |
| 19 | 19 | ||
| 20 | return newNode; | 20 | return newNode; |
| @@ -36,6 +36,7 @@ export const formSchemas: FormSchema[] = [ | @@ -36,6 +36,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 36 | label: EntityTypeNameEnum[value], | 36 | label: EntityTypeNameEnum[value], |
| 37 | value, | 37 | value, |
| 38 | })), | 38 | })), |
| 39 | + getPopupContainer: () => document.body, | ||
| 39 | placeholder: `请选择${CreateRelationFieldsNameEnum.ENTITY_TYPE}`, | 40 | placeholder: `请选择${CreateRelationFieldsNameEnum.ENTITY_TYPE}`, |
| 40 | }, | 41 | }, |
| 41 | }, | 42 | }, |
| @@ -49,7 +50,7 @@ export const formSchemas: FormSchema[] = [ | @@ -49,7 +50,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 49 | 'Hint: use ${metadataKey} for value from metadata, $[messageKey] for value from message body', | 50 | 'Hint: use ${metadataKey} for value from metadata, $[messageKey] for value from message body', |
| 50 | ], | 51 | ], |
| 51 | componentProps: { | 52 | componentProps: { |
| 52 | - placeholder: `请选择${CreateRelationFieldsNameEnum.ENTITY_NAME_PATTERN}`, | 53 | + placeholder: `请输入${CreateRelationFieldsNameEnum.ENTITY_NAME_PATTERN}`, |
| 53 | }, | 54 | }, |
| 54 | }, | 55 | }, |
| 55 | { | 56 | { |
| @@ -83,33 +84,31 @@ export const formSchemas: FormSchema[] = [ | @@ -83,33 +84,31 @@ export const formSchemas: FormSchema[] = [ | ||
| 83 | { | 84 | { |
| 84 | field: CreateRelationFieldsEnum.CREATE_ENTITY_IF_NOT_EXISTS, | 85 | field: CreateRelationFieldsEnum.CREATE_ENTITY_IF_NOT_EXISTS, |
| 85 | component: 'Checkbox', | 86 | component: 'Checkbox', |
| 86 | - label: '', | ||
| 87 | - helpMessage: 'Create a new entity set above if it does not exist.', | 87 | + label: CreateRelationFieldsNameEnum.CREATE_ENTITY_IF_NOT_EXISTS, |
| 88 | + helpMessage: '', | ||
| 88 | show: ({ model }) => { | 89 | show: ({ model }) => { |
| 89 | const type = model[CreateRelationFieldsEnum.ENTITY_TYPE]; | 90 | const type = model[CreateRelationFieldsEnum.ENTITY_TYPE]; |
| 90 | return [EntityTypeEnum.ASSET, EntityTypeEnum.DEVICE, EntityTypeEnum.CUSTOMER].includes(type); | 91 | return [EntityTypeEnum.ASSET, EntityTypeEnum.DEVICE, EntityTypeEnum.CUSTOMER].includes(type); |
| 91 | }, | 92 | }, |
| 92 | renderComponentContent: () => ({ | 93 | renderComponentContent: () => ({ |
| 93 | - default: () => CreateRelationFieldsNameEnum.CREATE_ENTITY_IF_NOT_EXISTS, | 94 | + default: () => 'Create a new entity set above if it does not exist.', |
| 94 | }), | 95 | }), |
| 95 | }, | 96 | }, |
| 96 | { | 97 | { |
| 97 | field: CreateRelationFieldsEnum.REMOVE_CURRENT_RELATIONS, | 98 | field: CreateRelationFieldsEnum.REMOVE_CURRENT_RELATIONS, |
| 98 | component: 'Checkbox', | 99 | component: 'Checkbox', |
| 99 | - label: '', | ||
| 100 | - helpMessage: | ||
| 101 | - 'Removes current relations from the originator of the incoming message based on direction and type.', | 100 | + label: CreateRelationFieldsNameEnum.REMOVE_CURRENT_RELATIONS, |
| 102 | renderComponentContent: () => ({ | 101 | renderComponentContent: () => ({ |
| 103 | - default: () => CreateRelationFieldsNameEnum.REMOVE_CURRENT_RELATIONS, | 102 | + default: () => |
| 103 | + 'Removes current relations from the originator of the incoming message based on direction and type.', | ||
| 104 | }), | 104 | }), |
| 105 | }, | 105 | }, |
| 106 | { | 106 | { |
| 107 | field: CreateRelationFieldsEnum.CHANGE_ORIGINATOR_TO_RELATED_ENTITY, | 107 | field: CreateRelationFieldsEnum.CHANGE_ORIGINATOR_TO_RELATED_ENTITY, |
| 108 | component: 'Checkbox', | 108 | component: 'Checkbox', |
| 109 | - label: '', | ||
| 110 | - helpMessage: 'Used to process submitted message as a message from another entity.', | 109 | + label: CreateRelationFieldsNameEnum.CHANGE_ORIGINATOR_TO_RELATED_ENTITY, |
| 111 | renderComponentContent: () => ({ | 110 | renderComponentContent: () => ({ |
| 112 | - default: () => CreateRelationFieldsNameEnum.CHANGE_ORIGINATOR_TO_RELATED_ENTITY, | 111 | + default: () => 'Used to process submitted message as a message from another entity.', |
| 113 | }), | 112 | }), |
| 114 | }, | 113 | }, |
| 115 | { | 114 | { |
| @@ -19,7 +19,7 @@ export const formSchemas: FormSchema[] = [ | @@ -19,7 +19,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 19 | component: 'Input', | 19 | component: 'Input', |
| 20 | label: DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS_PATTERN, | 20 | label: DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS_PATTERN, |
| 21 | required: true, | 21 | required: true, |
| 22 | - show: ({ model }) => model[DelayDeprecatedFieldsEnum.USE_METADATA_PERIOD_IN_SECONDS_PATTERNS], | 22 | + ifShow: ({ model }) => model[DelayDeprecatedFieldsEnum.USE_METADATA_PERIOD_IN_SECONDS_PATTERNS], |
| 23 | componentProps: { | 23 | componentProps: { |
| 24 | min: 0, | 24 | min: 0, |
| 25 | placeholder: `请输入${DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS_PATTERN}`, | 25 | placeholder: `请输入${DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS_PATTERN}`, |
| @@ -30,7 +30,8 @@ export const formSchemas: FormSchema[] = [ | @@ -30,7 +30,8 @@ export const formSchemas: FormSchema[] = [ | ||
| 30 | component: 'InputNumber', | 30 | component: 'InputNumber', |
| 31 | label: DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS, | 31 | label: DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS, |
| 32 | required: true, | 32 | required: true, |
| 33 | - show: ({ model }) => !model[DelayDeprecatedFieldsEnum.USE_METADATA_PERIOD_IN_SECONDS_PATTERNS], | 33 | + ifShow: ({ model }) => |
| 34 | + !model[DelayDeprecatedFieldsEnum.USE_METADATA_PERIOD_IN_SECONDS_PATTERNS], | ||
| 34 | componentProps: { | 35 | componentProps: { |
| 35 | min: 0, | 36 | min: 0, |
| 36 | placeholder: `请输入${DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS}`, | 37 | placeholder: `请输入${DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS}`, |
| 1 | -import { DirectionEnum, DirectionNameEnum } from '../../../enum/form'; | 1 | +import { |
| 2 | + DirectionEnum, | ||
| 3 | + DirectionNameEnum, | ||
| 4 | + EntityTypeEnum, | ||
| 5 | + EntityTypeNameEnum, | ||
| 6 | +} from '../../../enum/form'; | ||
| 2 | import { | 7 | import { |
| 3 | DeleteRelationFieldsEnum, | 8 | DeleteRelationFieldsEnum, |
| 4 | DeleteRelationFieldsNameEnum, | 9 | DeleteRelationFieldsNameEnum, |
| @@ -20,7 +25,6 @@ export const formSchemas: FormSchema[] = [ | @@ -20,7 +25,6 @@ export const formSchemas: FormSchema[] = [ | ||
| 20 | component: 'Select', | 25 | component: 'Select', |
| 21 | label: DeleteRelationFieldsNameEnum.DIRECTION, | 26 | label: DeleteRelationFieldsNameEnum.DIRECTION, |
| 22 | required: true, | 27 | required: true, |
| 23 | - colProps: { span: 12 }, | ||
| 24 | show: ({ model }) => model[DeleteRelationFieldsEnum.DELETE_FOR_SINGLE_ENTITY], | 28 | show: ({ model }) => model[DeleteRelationFieldsEnum.DELETE_FOR_SINGLE_ENTITY], |
| 25 | componentProps: { | 29 | componentProps: { |
| 26 | options: Object.keys(DirectionEnum).map((value) => ({ | 30 | options: Object.keys(DirectionEnum).map((value) => ({ |
| @@ -32,6 +36,21 @@ export const formSchemas: FormSchema[] = [ | @@ -32,6 +36,21 @@ export const formSchemas: FormSchema[] = [ | ||
| 32 | }, | 36 | }, |
| 33 | }, | 37 | }, |
| 34 | { | 38 | { |
| 39 | + field: DeleteRelationFieldsEnum.ENTITY_TYPE, | ||
| 40 | + component: 'Select', | ||
| 41 | + label: DeleteRelationFieldsNameEnum.ENTITY_TYPE, | ||
| 42 | + required: true, | ||
| 43 | + colProps: { span: 12 }, | ||
| 44 | + componentProps: { | ||
| 45 | + options: Object.keys(EntityTypeEnum).map((value) => ({ | ||
| 46 | + label: EntityTypeNameEnum[value], | ||
| 47 | + value, | ||
| 48 | + })), | ||
| 49 | + getPopupContainer: () => document.body, | ||
| 50 | + placeholder: `请选择${DeleteRelationFieldsNameEnum.ENTITY_TYPE}`, | ||
| 51 | + }, | ||
| 52 | + }, | ||
| 53 | + { | ||
| 35 | field: DeleteRelationFieldsEnum.ENTITY_NAME_PATTERN, | 54 | field: DeleteRelationFieldsEnum.ENTITY_NAME_PATTERN, |
| 36 | component: 'Input', | 55 | component: 'Input', |
| 37 | label: DeleteRelationFieldsNameEnum.ENTITY_NAME_PATTERN, | 56 | label: DeleteRelationFieldsNameEnum.ENTITY_NAME_PATTERN, |
| 1 | import { EntityTypeEnum, EntityTypeNameEnum } from '../../../enum/form'; | 1 | import { EntityTypeEnum, EntityTypeNameEnum } from '../../../enum/form'; |
| 2 | import { GeneratorFieldsEnum, GeneratorFieldsNameEnum } from '../../../enum/formField/action'; | 2 | import { GeneratorFieldsEnum, GeneratorFieldsNameEnum } from '../../../enum/formField/action'; |
| 3 | import { JavascriptEditorWithTestModal } from '../../../src/components/JavaScriptFilterModal'; | 3 | import { JavascriptEditorWithTestModal } from '../../../src/components/JavaScriptFilterModal'; |
| 4 | +import { getEntityIdSelect } from '../../Filter/CheckRelation/create.config'; | ||
| 4 | import { FormSchema, useComponentRegister } from '/@/components/Form'; | 5 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
| 5 | 6 | ||
| 6 | useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestModal); | 7 | useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestModal); |
| @@ -37,13 +38,18 @@ export const formSchemas: FormSchema[] = [ | @@ -37,13 +38,18 @@ export const formSchemas: FormSchema[] = [ | ||
| 37 | value, | 38 | value, |
| 38 | })), | 39 | })), |
| 39 | placeholder: `请选择${GeneratorFieldsNameEnum.ORIGINATOR_TYPE}`, | 40 | placeholder: `请选择${GeneratorFieldsNameEnum.ORIGINATOR_TYPE}`, |
| 41 | + getPopupContainer: () => document.body, | ||
| 40 | }, | 42 | }, |
| 41 | }, | 43 | }, |
| 42 | { | 44 | { |
| 43 | field: GeneratorFieldsEnum.ORIGINATOR_ID, | 45 | field: GeneratorFieldsEnum.ORIGINATOR_ID, |
| 44 | - component: 'Select', | ||
| 45 | - label: GeneratorFieldsNameEnum.ORIGINATOR_TYPE, | 46 | + component: 'ApiSearchSelect', |
| 47 | + label: ' ', | ||
| 46 | colProps: { span: 16 }, | 48 | colProps: { span: 16 }, |
| 49 | + componentProps: ({ formModel }) => { | ||
| 50 | + const type = formModel[GeneratorFieldsEnum.ORIGINATOR_TYPE]; | ||
| 51 | + return getEntityIdSelect(type); | ||
| 52 | + }, | ||
| 47 | }, | 53 | }, |
| 48 | { | 54 | { |
| 49 | field: GeneratorFieldsEnum.JS_SCRIPT, | 55 | field: GeneratorFieldsEnum.JS_SCRIPT, |
| @@ -47,7 +47,7 @@ export const formSchemas: FormSchema[] = [ | @@ -47,7 +47,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 47 | component: 'Input', | 47 | component: 'Input', |
| 48 | label: GpsGeofencingEventsFieldsNameEnum.PERIMETER_KEY_NAME, | 48 | label: GpsGeofencingEventsFieldsNameEnum.PERIMETER_KEY_NAME, |
| 49 | required: true, | 49 | required: true, |
| 50 | - show: ({ model }) => | 50 | + ifShow: ({ model }) => |
| 51 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.POLYGON && | 51 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.POLYGON && |
| 52 | model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 52 | model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
| 53 | componentProps: { | 53 | componentProps: { |
| @@ -61,7 +61,7 @@ export const formSchemas: FormSchema[] = [ | @@ -61,7 +61,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 61 | helpMessage: | 61 | helpMessage: |
| 62 | 'Please, use the following format for manual definition of polygon: [[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]].', | 62 | 'Please, use the following format for manual definition of polygon: [[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]].', |
| 63 | required: true, | 63 | required: true, |
| 64 | - show: ({ model }) => | 64 | + ifShow: ({ model }) => |
| 65 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.POLYGON && | 65 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.POLYGON && |
| 66 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 66 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
| 67 | componentProps: { | 67 | componentProps: { |
| @@ -74,7 +74,7 @@ export const formSchemas: FormSchema[] = [ | @@ -74,7 +74,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 74 | label: GpsGeofencingEventsFieldsNameEnum.CENTER_LATITUDE, | 74 | label: GpsGeofencingEventsFieldsNameEnum.CENTER_LATITUDE, |
| 75 | colProps: { span: 12 }, | 75 | colProps: { span: 12 }, |
| 76 | required: true, | 76 | required: true, |
| 77 | - show: ({ model }) => | 77 | + ifShow: ({ model }) => |
| 78 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && | 78 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
| 79 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 79 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
| 80 | componentProps: { | 80 | componentProps: { |
| @@ -86,7 +86,7 @@ export const formSchemas: FormSchema[] = [ | @@ -86,7 +86,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 86 | component: 'InputNumber', | 86 | component: 'InputNumber', |
| 87 | label: GpsGeofencingEventsFieldsNameEnum.CENTER_LONGITUDE, | 87 | label: GpsGeofencingEventsFieldsNameEnum.CENTER_LONGITUDE, |
| 88 | colProps: { span: 12 }, | 88 | colProps: { span: 12 }, |
| 89 | - show: ({ model }) => | 89 | + ifShow: ({ model }) => |
| 90 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && | 90 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
| 91 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 91 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
| 92 | componentProps: { | 92 | componentProps: { |
| @@ -99,7 +99,7 @@ export const formSchemas: FormSchema[] = [ | @@ -99,7 +99,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 99 | label: GpsGeofencingEventsFieldsNameEnum.RANGE, | 99 | label: GpsGeofencingEventsFieldsNameEnum.RANGE, |
| 100 | colProps: { span: 12 }, | 100 | colProps: { span: 12 }, |
| 101 | required: true, | 101 | required: true, |
| 102 | - show: ({ model }) => | 102 | + ifShow: ({ model }) => |
| 103 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && | 103 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
| 104 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 104 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
| 105 | componentProps: { | 105 | componentProps: { |
| @@ -112,7 +112,7 @@ export const formSchemas: FormSchema[] = [ | @@ -112,7 +112,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 112 | label: GpsGeofencingEventsFieldsNameEnum.RANGE_UNIT, | 112 | label: GpsGeofencingEventsFieldsNameEnum.RANGE_UNIT, |
| 113 | colProps: { span: 12 }, | 113 | colProps: { span: 12 }, |
| 114 | required: true, | 114 | required: true, |
| 115 | - show: ({ model }) => | 115 | + ifShow: ({ model }) => |
| 116 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && | 116 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
| 117 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 117 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
| 118 | componentProps: { | 118 | componentProps: { |
| @@ -21,6 +21,7 @@ export const formSchemas: FormSchema[] = [ | @@ -21,6 +21,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 21 | field: SaveAttributesFieldsEnum.NOTIFY_DEVICE, | 21 | field: SaveAttributesFieldsEnum.NOTIFY_DEVICE, |
| 22 | component: 'Checkbox', | 22 | component: 'Checkbox', |
| 23 | label: SaveAttributesFieldsNameEnum.NOTIFY_DEVICE, | 23 | label: SaveAttributesFieldsNameEnum.NOTIFY_DEVICE, |
| 24 | + ifShow: ({ model }) => model[SaveAttributesFieldsEnum.SCOPE] === ScopeEnum.SHARED_SCOPE, | ||
| 24 | renderComponentContent: () => ({ | 25 | renderComponentContent: () => ({ |
| 25 | default: () => | 26 | default: () => |
| 26 | 'If the message arrives from the device, we will push it back to the device by default.', | 27 | 'If the message arrives from the device, we will push it back to the device by default.', |
| 1 | +import { h } from 'vue'; | ||
| 1 | import { SaveEventFieldsEnum, SaveEventFieldsNameEnum } from '../../../enum/formField/action'; | 2 | import { SaveEventFieldsEnum, SaveEventFieldsNameEnum } from '../../../enum/formField/action'; |
| 2 | import { FormSchema } from '/@/components/Form'; | 3 | import { FormSchema } from '/@/components/Form'; |
| 3 | 4 | ||
| 4 | export const formSchemas: FormSchema[] = [ | 5 | export const formSchemas: FormSchema[] = [ |
| 5 | { | 6 | { |
| 7 | + field: 'content', | ||
| 8 | + label: '', | ||
| 9 | + component: 'Input', | ||
| 10 | + renderColContent: () => | ||
| 11 | + h( | ||
| 12 | + 'div', | ||
| 13 | + { style: { color: 'red' } }, | ||
| 14 | + `定义的配置指令 'tkMsgEventNodeConfiguration' 不可用。` | ||
| 15 | + ), | ||
| 16 | + }, | ||
| 17 | + { | ||
| 6 | field: SaveEventFieldsEnum.CONFIGURATION, | 18 | field: SaveEventFieldsEnum.CONFIGURATION, |
| 7 | component: 'JSONEditor', | 19 | component: 'JSONEditor', |
| 8 | label: SaveEventFieldsNameEnum.CONFIGURATION, | 20 | label: SaveEventFieldsNameEnum.CONFIGURATION, |
| @@ -28,7 +28,6 @@ export const formSchemas: FormSchema[] = [ | @@ -28,7 +28,6 @@ export const formSchemas: FormSchema[] = [ | ||
| 28 | { | 28 | { |
| 29 | required: true, | 29 | required: true, |
| 30 | validator(_rule, value) { | 30 | validator(_rule, value) { |
| 31 | - console.log(value); | ||
| 32 | if (!isObject(value) || !Object.keys(value).length) | 31 | if (!isObject(value) || !Object.keys(value).length) |
| 33 | return Promise.reject('至少应该指定一个字段映射。'); | 32 | return Promise.reject('至少应该指定一个字段映射。'); |
| 34 | return Promise.resolve(); | 33 | return Promise.resolve(); |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { |
| 2 | + CalculateDeltaFieldsEnum, | ||
| 3 | + CalculateDeltaFieldsNameEnum, | ||
| 4 | +} from '../../../enum/formField/enrichment'; | ||
| 2 | import { FormSchema } from '/@/components/Form'; | 5 | import { FormSchema } from '/@/components/Form'; |
| 3 | 6 | ||
| 4 | export const formSchemas: FormSchema[] = [ | 7 | export const formSchemas: FormSchema[] = [ |
| 5 | { | 8 | { |
| 6 | - field: NodeBindDataFieldEnum.INPUT_VALUE_KEY, | 9 | + field: CalculateDeltaFieldsEnum.INPUT_VALUE_KEY, |
| 7 | component: 'Input', | 10 | component: 'Input', |
| 8 | - label: NodeBindDataFieldNameEnum.INPUT_VALUE_KEY, | 11 | + label: CalculateDeltaFieldsNameEnum.INPUT_VALUE_KEY, |
| 9 | required: true, | 12 | required: true, |
| 10 | colProps: { span: 8 }, | 13 | colProps: { span: 8 }, |
| 14 | + componentProps: { | ||
| 15 | + placeholder: `请输入${CalculateDeltaFieldsNameEnum.INPUT_VALUE_KEY}`, | ||
| 16 | + }, | ||
| 11 | }, | 17 | }, |
| 12 | { | 18 | { |
| 13 | - field: NodeBindDataFieldEnum.OUTPUT_VALUE_KEY, | 19 | + field: CalculateDeltaFieldsEnum.OUTPUT_VALUE_KEY, |
| 14 | component: 'Input', | 20 | component: 'Input', |
| 15 | - label: NodeBindDataFieldNameEnum.OUTPUT_VALUE_KEY, | 21 | + label: CalculateDeltaFieldsNameEnum.OUTPUT_VALUE_KEY, |
| 16 | required: true, | 22 | required: true, |
| 17 | colProps: { span: 8 }, | 23 | colProps: { span: 8 }, |
| 24 | + componentProps: { | ||
| 25 | + placeholder: `请输入${CalculateDeltaFieldsNameEnum.OUTPUT_VALUE_KEY}`, | ||
| 26 | + }, | ||
| 18 | }, | 27 | }, |
| 19 | { | 28 | { |
| 20 | - field: NodeBindDataFieldEnum.ROUND, | 29 | + field: CalculateDeltaFieldsEnum.ROUND, |
| 21 | component: 'InputNumber', | 30 | component: 'InputNumber', |
| 22 | - label: NodeBindDataFieldNameEnum.ROUND, | 31 | + label: CalculateDeltaFieldsNameEnum.ROUND, |
| 23 | colProps: { span: 8 }, | 32 | colProps: { span: 8 }, |
| 24 | componentProps: { | 33 | componentProps: { |
| 25 | step: 1, | 34 | step: 1, |
| 26 | max: 15, | 35 | max: 15, |
| 36 | + placeholder: `请输入${CalculateDeltaFieldsNameEnum.ROUND}`, | ||
| 27 | }, | 37 | }, |
| 28 | }, | 38 | }, |
| 29 | { | 39 | { |
| 30 | - field: NodeBindDataFieldEnum.USE_CACHE, | 40 | + field: CalculateDeltaFieldsEnum.USE_CACHE, |
| 31 | component: 'Checkbox', | 41 | component: 'Checkbox', |
| 32 | label: '', | 42 | label: '', |
| 33 | renderComponentContent: () => { | 43 | renderComponentContent: () => { |
| 34 | return { | 44 | return { |
| 35 | - default: () => NodeBindDataFieldNameEnum.USE_CACHE, | 45 | + default: () => CalculateDeltaFieldsNameEnum.USE_CACHE, |
| 36 | }; | 46 | }; |
| 37 | }, | 47 | }, |
| 38 | }, | 48 | }, |
| 39 | { | 49 | { |
| 40 | - field: NodeBindDataFieldEnum.TELL_FAILURE_IF_DELTA_IS_NEGATIVE, | 50 | + field: CalculateDeltaFieldsEnum.TELL_FAILURE_IF_DELTA_IS_NEGATIVE, |
| 41 | component: 'Checkbox', | 51 | component: 'Checkbox', |
| 42 | label: '', | 52 | label: '', |
| 43 | renderComponentContent: () => { | 53 | renderComponentContent: () => { |
| 44 | return { | 54 | return { |
| 45 | - default: () => NodeBindDataFieldNameEnum.TELL_FAILURE_IF_DELTA_IS_NEGATIVE, | 55 | + default: () => CalculateDeltaFieldsNameEnum.TELL_FAILURE_IF_DELTA_IS_NEGATIVE, |
| 46 | }; | 56 | }; |
| 47 | }, | 57 | }, |
| 48 | }, | 58 | }, |
| 49 | { | 59 | { |
| 50 | - field: NodeBindDataFieldEnum.ADD_PERIOD_BETWEEN_MSGS, | 60 | + field: CalculateDeltaFieldsEnum.ADD_PERIOD_BETWEEN_MSGS, |
| 51 | component: 'Checkbox', | 61 | component: 'Checkbox', |
| 52 | label: '', | 62 | label: '', |
| 53 | renderComponentContent: () => { | 63 | renderComponentContent: () => { |
| 54 | return { | 64 | return { |
| 55 | - default: () => NodeBindDataFieldNameEnum.ADD_PERIOD_BETWEEN_MSGS, | 65 | + default: () => CalculateDeltaFieldsNameEnum.ADD_PERIOD_BETWEEN_MSGS, |
| 56 | }; | 66 | }; |
| 57 | }, | 67 | }, |
| 58 | }, | 68 | }, |
| 59 | { | 69 | { |
| 60 | - field: NodeBindDataFieldEnum.PERIOD_VALUE_KEY, | 70 | + field: CalculateDeltaFieldsEnum.PERIOD_VALUE_KEY, |
| 61 | component: 'Input', | 71 | component: 'Input', |
| 62 | - label: NodeBindDataFieldNameEnum.PERIOD_VALUE_KEY, | 72 | + label: CalculateDeltaFieldsNameEnum.PERIOD_VALUE_KEY, |
| 63 | required: true, | 73 | required: true, |
| 64 | - ifShow: ({ model }) => model[NodeBindDataFieldEnum.ADD_PERIOD_BETWEEN_MSGS], | 74 | + ifShow: ({ model }) => model[CalculateDeltaFieldsEnum.ADD_PERIOD_BETWEEN_MSGS], |
| 75 | + componentProps: { | ||
| 76 | + placeholder: `请输入${CalculateDeltaFieldsNameEnum.PERIOD_VALUE_KEY}`, | ||
| 77 | + }, | ||
| 65 | }, | 78 | }, |
| 66 | ]; | 79 | ]; |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { |
| 2 | + CustomerAttributesFieldsEnum, | ||
| 3 | + CustomerAttributesFieldsNameEnum, | ||
| 4 | +} from '../../../enum/formField/enrichment'; | ||
| 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; | 5 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
| 3 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; | 6 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
| 4 | 7 | ||
| @@ -6,20 +9,20 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); | @@ -6,20 +9,20 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); | ||
| 6 | 9 | ||
| 7 | export const formSchemas: FormSchema[] = [ | 10 | export const formSchemas: FormSchema[] = [ |
| 8 | { | 11 | { |
| 9 | - field: NodeBindDataFieldEnum.TELEMETRY, | 12 | + field: CustomerAttributesFieldsEnum.TELEMETRY, |
| 10 | component: 'Checkbox', | 13 | component: 'Checkbox', |
| 11 | label: '', | 14 | label: '', |
| 12 | renderComponentContent: () => { | 15 | renderComponentContent: () => { |
| 13 | return { | 16 | return { |
| 14 | - default: () => NodeBindDataFieldNameEnum.TELEMETRY, | 17 | + default: () => CustomerAttributesFieldsNameEnum.TELEMETRY, |
| 15 | }; | 18 | }; |
| 16 | }, | 19 | }, |
| 17 | }, | 20 | }, |
| 18 | { | 21 | { |
| 19 | - field: NodeBindDataFieldEnum.ATTR_MAPING, | 22 | + field: CustomerAttributesFieldsEnum.ATTR_MAPING, |
| 20 | component: 'AttributeConfiguration', | 23 | component: 'AttributeConfiguration', |
| 21 | - label: NodeBindDataFieldNameEnum.ATTR_MAPING, | ||
| 22 | - slot: NodeBindDataFieldEnum.ATTR_MAPING, | 24 | + label: CustomerAttributesFieldsNameEnum.ATTR_MAPING, |
| 25 | + slot: CustomerAttributesFieldsEnum.ATTR_MAPING, | ||
| 23 | valueField: 'value', | 26 | valueField: 'value', |
| 24 | changeEvent: 'update:value', | 27 | changeEvent: 'update:value', |
| 25 | }, | 28 | }, |
| 1 | import { DetailsListEnum, DetailsListNameEnum } from '../../../enum/form'; | 1 | import { DetailsListEnum, DetailsListNameEnum } from '../../../enum/form'; |
| 2 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 2 | +import { |
| 3 | + CustomerDetailsFieldsEnum, | ||
| 4 | + CustomerDetailsFieldsNameEnum, | ||
| 5 | +} from '../../../enum/formField/enrichment'; | ||
| 3 | import { FormSchema } from '/@/components/Form'; | 6 | import { FormSchema } from '/@/components/Form'; |
| 4 | 7 | ||
| 5 | export const formSchemas: FormSchema[] = [ | 8 | export const formSchemas: FormSchema[] = [ |
| 6 | { | 9 | { |
| 7 | - field: NodeBindDataFieldEnum.DETAILS_LIST, | 10 | + field: CustomerDetailsFieldsEnum.DETAILS_LIST, |
| 8 | component: 'Select', | 11 | component: 'Select', |
| 9 | - label: NodeBindDataFieldNameEnum.DETAILS_LIST, | 12 | + label: CustomerDetailsFieldsNameEnum.DETAILS_LIST, |
| 10 | componentProps: { | 13 | componentProps: { |
| 11 | mode: 'multiple', | 14 | mode: 'multiple', |
| 12 | options: Object.keys(DetailsListEnum).map((item) => ({ | 15 | options: Object.keys(DetailsListEnum).map((item) => ({ |
| 13 | label: DetailsListNameEnum[item], | 16 | label: DetailsListNameEnum[item], |
| 14 | value: item, | 17 | value: item, |
| 15 | - getPopupContainer: () => document.body, | ||
| 16 | })), | 18 | })), |
| 19 | + getPopupContainer: () => document.body, | ||
| 17 | }, | 20 | }, |
| 18 | }, | 21 | }, |
| 19 | { | 22 | { |
| 20 | - field: NodeBindDataFieldEnum.ADD_TO_METADATA, | 23 | + field: CustomerDetailsFieldsEnum.ADD_TO_METADATA, |
| 21 | component: 'Checkbox', | 24 | component: 'Checkbox', |
| 22 | label: '', | 25 | label: '', |
| 23 | renderComponentContent: () => { | 26 | renderComponentContent: () => { |
| 24 | return { | 27 | return { |
| 25 | - default: () => NodeBindDataFieldNameEnum.ADD_TO_METADATA, | 28 | + default: () => CustomerDetailsFieldsNameEnum.ADD_TO_METADATA, |
| 26 | }; | 29 | }; |
| 27 | }, | 30 | }, |
| 28 | }, | 31 | }, |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { |
| 2 | + OriginatorAttributesEnum, | ||
| 3 | + OriginatorAttributesNameEnum, | ||
| 4 | +} from '../../../enum/formField/enrichment'; | ||
| 2 | import { FormSchema } from '/@/components/Form'; | 5 | import { FormSchema } from '/@/components/Form'; |
| 3 | 6 | ||
| 4 | export const formSchemas: FormSchema[] = [ | 7 | export const formSchemas: FormSchema[] = [ |
| 5 | { | 8 | { |
| 6 | - field: NodeBindDataFieldEnum.TELL_FAILURE_IF_ABSENT, | 9 | + field: OriginatorAttributesEnum.TELL_FAILURE_IF_ABSENT, |
| 7 | component: 'Checkbox', | 10 | component: 'Checkbox', |
| 8 | - label: '', | ||
| 9 | - // helpMessage: [ | ||
| 10 | - // 'If at least one selected key doesn\'t exist the outbound message will report "Failure".', | ||
| 11 | - // ], | 11 | + label: OriginatorAttributesNameEnum.TELL_FAILURE_IF_ABSENT, |
| 12 | renderComponentContent: () => ({ | 12 | renderComponentContent: () => ({ |
| 13 | - default: () => NodeBindDataFieldNameEnum.TELL_FAILURE_IF_ABSENT, | 13 | + default: () => |
| 14 | + 'If at least one selected key doesn\'t exist the outbound message will report "Failure".', | ||
| 14 | }), | 15 | }), |
| 15 | }, | 16 | }, |
| 16 | { | 17 | { |
| 17 | - field: NodeBindDataFieldEnum.CLIENT_ATTRIBUTE_NAMES, | 18 | + field: OriginatorAttributesEnum.CLIENT_ATTRIBUTE_NAMES, |
| 18 | component: 'Select', | 19 | component: 'Select', |
| 19 | - label: NodeBindDataFieldNameEnum.CLIENT_ATTRIBUTE_NAMES, | 20 | + label: OriginatorAttributesNameEnum.CLIENT_ATTRIBUTE_NAMES, |
| 20 | helpMessage: [ | 21 | helpMessage: [ |
| 21 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, | 22 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, |
| 22 | ], | 23 | ], |
| 23 | componentProps: { | 24 | componentProps: { |
| 24 | mode: 'tags', | 25 | mode: 'tags', |
| 25 | open: false, | 26 | open: false, |
| 27 | + placeholder: `请输入${OriginatorAttributesNameEnum.CLIENT_ATTRIBUTE_NAMES}`, | ||
| 26 | }, | 28 | }, |
| 27 | }, | 29 | }, |
| 28 | { | 30 | { |
| 29 | - field: NodeBindDataFieldEnum.SHARED_ATTRIBUTE_NAMES, | 31 | + field: OriginatorAttributesEnum.SHARED_ATTRIBUTE_NAMES, |
| 30 | component: 'Select', | 32 | component: 'Select', |
| 31 | - label: NodeBindDataFieldNameEnum.SHARED_ATTRIBUTE_NAMES, | 33 | + label: OriginatorAttributesNameEnum.SHARED_ATTRIBUTE_NAMES, |
| 32 | helpMessage: [ | 34 | helpMessage: [ |
| 33 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, | 35 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, |
| 34 | ], | 36 | ], |
| 35 | componentProps: { | 37 | componentProps: { |
| 36 | mode: 'tags', | 38 | mode: 'tags', |
| 37 | open: false, | 39 | open: false, |
| 40 | + placeholder: `请输入${OriginatorAttributesNameEnum.SHARED_ATTRIBUTE_NAMES}`, | ||
| 38 | }, | 41 | }, |
| 39 | }, | 42 | }, |
| 40 | { | 43 | { |
| 41 | - field: NodeBindDataFieldEnum.SERVER_ATTRIBUTE_NAMES, | 44 | + field: OriginatorAttributesEnum.SERVER_ATTRIBUTE_NAMES, |
| 42 | component: 'Select', | 45 | component: 'Select', |
| 43 | - label: NodeBindDataFieldNameEnum.SERVER_ATTRIBUTE_NAMES, | 46 | + label: OriginatorAttributesNameEnum.SERVER_ATTRIBUTE_NAMES, |
| 44 | helpMessage: [ | 47 | helpMessage: [ |
| 45 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, | 48 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, |
| 46 | ], | 49 | ], |
| 47 | componentProps: { | 50 | componentProps: { |
| 48 | mode: 'tags', | 51 | mode: 'tags', |
| 49 | open: false, | 52 | open: false, |
| 53 | + placeholder: `请输入${OriginatorAttributesNameEnum.SERVER_ATTRIBUTE_NAMES}`, | ||
| 50 | }, | 54 | }, |
| 51 | }, | 55 | }, |
| 52 | { | 56 | { |
| 53 | - field: NodeBindDataFieldEnum.LATEST_TS_KEY_NAMES, | 57 | + field: OriginatorAttributesEnum.LATEST_TS_KEY_NAMES, |
| 54 | component: 'Select', | 58 | component: 'Select', |
| 55 | - label: NodeBindDataFieldNameEnum.LATEST_TS_KEY_NAMES, | 59 | + label: OriginatorAttributesNameEnum.LATEST_TS_KEY_NAMES, |
| 56 | helpMessage: [ | 60 | helpMessage: [ |
| 57 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, | 61 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, |
| 58 | ], | 62 | ], |
| 59 | componentProps: { | 63 | componentProps: { |
| 60 | mode: 'tags', | 64 | mode: 'tags', |
| 61 | open: false, | 65 | open: false, |
| 66 | + placeholder: `请输入${OriginatorAttributesNameEnum.LATEST_TS_KEY_NAMES}`, | ||
| 62 | }, | 67 | }, |
| 63 | }, | 68 | }, |
| 64 | { | 69 | { |
| 65 | - field: NodeBindDataFieldEnum.GET_LATEST_VALUE_WITH_TS, | 70 | + field: OriginatorAttributesEnum.GET_LATEST_VALUE_WITH_TS, |
| 66 | component: 'Checkbox', | 71 | component: 'Checkbox', |
| 67 | - label: '', | ||
| 68 | - // helpMessage: [ | ||
| 69 | - // 'If selected, latest telemetry values will be added to the outbound message metadata with timestamp, e.g: "temp": "{"ts":1574329385897, "value":42}"', | ||
| 70 | - // ], | 72 | + label: OriginatorAttributesNameEnum.GET_LATEST_VALUE_WITH_TS, |
| 71 | renderComponentContent: () => ({ | 73 | renderComponentContent: () => ({ |
| 72 | - default: () => NodeBindDataFieldNameEnum.GET_LATEST_VALUE_WITH_TS, | 74 | + default: () => |
| 75 | + 'If selected, latest telemetry values will be added to the outbound message metadata with timestamp, e.g: "temp": "{"ts":1574329385897, "value":42}"', | ||
| 73 | }), | 76 | }), |
| 74 | }, | 77 | }, |
| 75 | ]; | 78 | ]; |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { OriginatorFieldsEnum, OriginatorFieldsNameEnum } from '../../../enum/formField/enrichment'; |
| 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; | 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
| 3 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; | 3 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
| 4 | 4 | ||
| @@ -6,10 +6,10 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); | @@ -6,10 +6,10 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); | ||
| 6 | 6 | ||
| 7 | export const formSchemas: FormSchema[] = [ | 7 | export const formSchemas: FormSchema[] = [ |
| 8 | { | 8 | { |
| 9 | - field: NodeBindDataFieldEnum.FIELDS_MAPPING, | 9 | + field: OriginatorFieldsEnum.FIELDS_MAPPING, |
| 10 | component: 'AttributeConfiguration', | 10 | component: 'AttributeConfiguration', |
| 11 | - label: NodeBindDataFieldNameEnum.FIELDS_MAPPING, | ||
| 12 | - slot: NodeBindDataFieldEnum.FIELDS_MAPPING, | 11 | + label: OriginatorFieldsNameEnum.FIELDS_MAPPING, |
| 12 | + slot: OriginatorFieldsEnum.FIELDS_MAPPING, | ||
| 13 | valueField: 'value', | 13 | valueField: 'value', |
| 14 | changeEvent: 'update:value', | 14 | changeEvent: 'update:value', |
| 15 | }, | 15 | }, |
| @@ -6,155 +6,169 @@ import { | @@ -6,155 +6,169 @@ import { | ||
| 6 | TimeIntervalUnitEnum, | 6 | TimeIntervalUnitEnum, |
| 7 | TimeIntervalUnitNameEnum, | 7 | TimeIntervalUnitNameEnum, |
| 8 | } from '../../../enum/form'; | 8 | } from '../../../enum/form'; |
| 9 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 9 | +import { |
| 10 | + OriginatorTelemetryFieldsEnum, | ||
| 11 | + OriginatorTelemetryFieldsNameEnum, | ||
| 12 | +} from '../../../enum/formField/enrichment'; | ||
| 10 | import { FormSchema } from '/@/components/Form'; | 13 | import { FormSchema } from '/@/components/Form'; |
| 11 | 14 | ||
| 12 | export const formSchemas: FormSchema[] = [ | 15 | export const formSchemas: FormSchema[] = [ |
| 13 | { | 16 | { |
| 14 | - field: NodeBindDataFieldEnum.LATEST_TS_KEY_NAMES, | 17 | + field: OriginatorTelemetryFieldsEnum.LATEST_TS_KEY_NAMES, |
| 15 | component: 'Select', | 18 | component: 'Select', |
| 16 | - label: NodeBindDataFieldNameEnum.LATEST_TS_KEY_NAMES, | 19 | + label: OriginatorTelemetryFieldsNameEnum.LATEST_TS_KEY_NAMES, |
| 17 | componentProps: { | 20 | componentProps: { |
| 18 | mode: 'tags', | 21 | mode: 'tags', |
| 19 | open: false, | 22 | open: false, |
| 23 | + placeholder: `请输入${OriginatorTelemetryFieldsNameEnum.LATEST_TS_KEY_NAMES}`, | ||
| 24 | + getPopupContainer: () => document.body, | ||
| 20 | }, | 25 | }, |
| 21 | }, | 26 | }, |
| 22 | { | 27 | { |
| 23 | - field: NodeBindDataFieldEnum.FETCH_MODE, | 28 | + field: OriginatorTelemetryFieldsEnum.FETCH_MODE, |
| 24 | component: 'Select', | 29 | component: 'Select', |
| 25 | - label: NodeBindDataFieldNameEnum.FETCH_MODE, | 30 | + label: OriginatorTelemetryFieldsNameEnum.FETCH_MODE, |
| 26 | required: true, | 31 | required: true, |
| 27 | componentProps: { | 32 | componentProps: { |
| 28 | options: Object.keys(FetchModeEnum).map((value) => ({ label: value, value })), | 33 | options: Object.keys(FetchModeEnum).map((value) => ({ label: value, value })), |
| 34 | + placeholder: `请选择${OriginatorTelemetryFieldsNameEnum.FETCH_MODE}`, | ||
| 35 | + getPopupContainer: () => document.body, | ||
| 29 | }, | 36 | }, |
| 30 | }, | 37 | }, |
| 31 | { | 38 | { |
| 32 | - field: NodeBindDataFieldEnum.AGGREGATION, | 39 | + field: OriginatorTelemetryFieldsEnum.AGGREGATION, |
| 33 | component: 'Select', | 40 | component: 'Select', |
| 34 | - label: NodeBindDataFieldNameEnum.AGGREGATION, | 41 | + label: OriginatorTelemetryFieldsNameEnum.AGGREGATION, |
| 35 | required: true, | 42 | required: true, |
| 36 | - show: ({ model }) => model[NodeBindDataFieldEnum.FETCH_MODE] === FetchModeEnum.ALL, | 43 | + show: ({ model }) => model[OriginatorTelemetryFieldsEnum.FETCH_MODE] === FetchModeEnum.ALL, |
| 37 | componentProps: { | 44 | componentProps: { |
| 38 | options: Object.keys(AggregationEnum).map((value) => ({ | 45 | options: Object.keys(AggregationEnum).map((value) => ({ |
| 39 | label: AggregationNameEnum[value], | 46 | label: AggregationNameEnum[value], |
| 40 | value, | 47 | value, |
| 41 | })), | 48 | })), |
| 49 | + placeholder: `请选择${OriginatorTelemetryFieldsNameEnum.AGGREGATION}`, | ||
| 50 | + getPopupContainer: () => document.body, | ||
| 42 | }, | 51 | }, |
| 43 | }, | 52 | }, |
| 44 | { | 53 | { |
| 45 | - field: NodeBindDataFieldEnum.ORDER_BY, | ||
| 46 | - component: 'Select', | ||
| 47 | - label: NodeBindDataFieldNameEnum.ORDER_BY, | ||
| 48 | - required: true, | ||
| 49 | - show: ({ model }) => model[NodeBindDataFieldEnum.FETCH_MODE] === FetchModeEnum.ALL, | ||
| 50 | - componentProps: { | ||
| 51 | - options: Object.keys(OrderByEnum).map((value) => ({ label: value, value })), | ||
| 52 | - }, | ||
| 53 | - }, | ||
| 54 | - { | ||
| 55 | - field: NodeBindDataFieldEnum.ORDER_BY, | 54 | + field: OriginatorTelemetryFieldsEnum.ORDER_BY, |
| 56 | component: 'Select', | 55 | component: 'Select', |
| 57 | - label: NodeBindDataFieldNameEnum.ORDER_BY, | 56 | + label: OriginatorTelemetryFieldsNameEnum.ORDER_BY, |
| 58 | required: true, | 57 | required: true, |
| 59 | helpMessage: ['Select to choose telemetry sampling order.'], | 58 | helpMessage: ['Select to choose telemetry sampling order.'], |
| 60 | - show: ({ model }) => model[NodeBindDataFieldEnum.FETCH_MODE] === FetchModeEnum.ALL, | 59 | + show: ({ model }) => model[OriginatorTelemetryFieldsEnum.FETCH_MODE] === FetchModeEnum.ALL, |
| 61 | componentProps: { | 60 | componentProps: { |
| 62 | options: Object.keys(OrderByEnum).map((value) => ({ label: value, value })), | 61 | options: Object.keys(OrderByEnum).map((value) => ({ label: value, value })), |
| 62 | + placeholder: `请选择${OriginatorTelemetryFieldsNameEnum.FETCH_MODE}`, | ||
| 63 | + getPopupContainer: () => document.body, | ||
| 63 | }, | 64 | }, |
| 64 | }, | 65 | }, |
| 65 | { | 66 | { |
| 66 | - field: NodeBindDataFieldEnum.LIMIT, | 67 | + field: OriginatorTelemetryFieldsEnum.LIMIT, |
| 67 | component: 'InputNumber', | 68 | component: 'InputNumber', |
| 68 | - label: NodeBindDataFieldNameEnum.LIMIT, | 69 | + label: OriginatorTelemetryFieldsNameEnum.LIMIT, |
| 69 | required: true, | 70 | required: true, |
| 70 | helpMessage: [ | 71 | helpMessage: [ |
| 71 | "Min limit value is 2, max - 1000. In case you want to fetch a single entry, select fetch mode 'FIRST' or 'LAST'.", | 72 | "Min limit value is 2, max - 1000. In case you want to fetch a single entry, select fetch mode 'FIRST' or 'LAST'.", |
| 72 | ], | 73 | ], |
| 73 | - show: ({ model }) => model[NodeBindDataFieldEnum.FETCH_MODE] === FetchModeEnum.ALL, | 74 | + show: ({ model }) => model[OriginatorTelemetryFieldsEnum.FETCH_MODE] === FetchModeEnum.ALL, |
| 74 | componentProps: { | 75 | componentProps: { |
| 75 | min: 2, | 76 | min: 2, |
| 76 | max: 1000, | 77 | max: 1000, |
| 77 | step: 1, | 78 | step: 1, |
| 79 | + placeholder: `请输入${OriginatorTelemetryFieldsNameEnum.LIMIT}`, | ||
| 78 | }, | 80 | }, |
| 79 | }, | 81 | }, |
| 80 | { | 82 | { |
| 81 | - field: NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS, | 83 | + field: OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS, |
| 82 | component: 'Checkbox', | 84 | component: 'Checkbox', |
| 83 | label: '', | 85 | label: '', |
| 84 | renderComponentContent: () => ({ | 86 | renderComponentContent: () => ({ |
| 85 | - default: () => NodeBindDataFieldNameEnum.USE_METADATA_INTERVAL_PATTERNS, | 87 | + default: () => OriginatorTelemetryFieldsNameEnum.USE_METADATA_INTERVAL_PATTERNS, |
| 86 | }), | 88 | }), |
| 87 | }, | 89 | }, |
| 88 | { | 90 | { |
| 89 | - field: NodeBindDataFieldEnum.START_INTERVAL, | 91 | + field: OriginatorTelemetryFieldsEnum.START_INTERVAL, |
| 90 | component: 'InputNumber', | 92 | component: 'InputNumber', |
| 91 | - label: NodeBindDataFieldNameEnum.START_INTERVAL, | 93 | + label: OriginatorTelemetryFieldsNameEnum.START_INTERVAL, |
| 92 | colProps: { span: 12 }, | 94 | colProps: { span: 12 }, |
| 93 | required: true, | 95 | required: true, |
| 94 | - show: ({ model }) => !model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | 96 | + show: ({ model }) => !model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], |
| 95 | componentProps: { | 97 | componentProps: { |
| 96 | step: 1, | 98 | step: 1, |
| 97 | min: 0, | 99 | min: 0, |
| 100 | + placeholder: `请输入${OriginatorTelemetryFieldsNameEnum.START_INTERVAL}`, | ||
| 98 | }, | 101 | }, |
| 99 | }, | 102 | }, |
| 100 | { | 103 | { |
| 101 | - field: NodeBindDataFieldEnum.START_INTERVAL_TIME_UNIT, | 104 | + field: OriginatorTelemetryFieldsEnum.START_INTERVAL_TIME_UNIT, |
| 102 | component: 'Select', | 105 | component: 'Select', |
| 103 | - label: NodeBindDataFieldNameEnum.START_INTERVAL_TIME_UNIT, | 106 | + label: OriginatorTelemetryFieldsNameEnum.START_INTERVAL_TIME_UNIT, |
| 104 | colProps: { span: 12 }, | 107 | colProps: { span: 12 }, |
| 105 | required: true, | 108 | required: true, |
| 106 | - show: ({ model }) => !model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | 109 | + show: ({ model }) => !model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], |
| 107 | componentProps: { | 110 | componentProps: { |
| 108 | options: Object.keys(TimeIntervalUnitEnum).map((value) => ({ | 111 | options: Object.keys(TimeIntervalUnitEnum).map((value) => ({ |
| 109 | label: TimeIntervalUnitNameEnum[value], | 112 | label: TimeIntervalUnitNameEnum[value], |
| 110 | value, | 113 | value, |
| 111 | })), | 114 | })), |
| 115 | + placeholder: `请选择${OriginatorTelemetryFieldsNameEnum.START_INTERVAL_TIME_UNIT}`, | ||
| 116 | + getPopupContainer: () => document.body, | ||
| 112 | }, | 117 | }, |
| 113 | }, | 118 | }, |
| 114 | { | 119 | { |
| 115 | - field: NodeBindDataFieldEnum.END_INTERVAL, | 120 | + field: OriginatorTelemetryFieldsEnum.END_INTERVAL, |
| 116 | component: 'InputNumber', | 121 | component: 'InputNumber', |
| 117 | - label: NodeBindDataFieldNameEnum.END_INTERVAL, | 122 | + label: OriginatorTelemetryFieldsNameEnum.END_INTERVAL, |
| 118 | colProps: { span: 12 }, | 123 | colProps: { span: 12 }, |
| 119 | required: true, | 124 | required: true, |
| 120 | - show: ({ model }) => !model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | 125 | + show: ({ model }) => !model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], |
| 121 | componentProps: { | 126 | componentProps: { |
| 122 | step: 1, | 127 | step: 1, |
| 123 | min: 0, | 128 | min: 0, |
| 129 | + placeholder: `请输入${OriginatorTelemetryFieldsNameEnum.END_INTERVAL}`, | ||
| 124 | }, | 130 | }, |
| 125 | }, | 131 | }, |
| 126 | { | 132 | { |
| 127 | - field: NodeBindDataFieldEnum.END_INTERVAL_TIME_UNIT, | 133 | + field: OriginatorTelemetryFieldsEnum.END_INTERVAL_TIME_UNIT, |
| 128 | component: 'Select', | 134 | component: 'Select', |
| 129 | - label: NodeBindDataFieldNameEnum.END_INTERVAL_TIME_UNIT, | 135 | + label: OriginatorTelemetryFieldsNameEnum.END_INTERVAL_TIME_UNIT, |
| 130 | colProps: { span: 12 }, | 136 | colProps: { span: 12 }, |
| 131 | required: true, | 137 | required: true, |
| 132 | - show: ({ model }) => !model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | 138 | + show: ({ model }) => !model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], |
| 133 | componentProps: { | 139 | componentProps: { |
| 134 | options: Object.keys(TimeIntervalUnitEnum).map((value) => ({ | 140 | options: Object.keys(TimeIntervalUnitEnum).map((value) => ({ |
| 135 | label: TimeIntervalUnitNameEnum[value], | 141 | label: TimeIntervalUnitNameEnum[value], |
| 136 | value, | 142 | value, |
| 137 | })), | 143 | })), |
| 144 | + placeholder: `请选择${OriginatorTelemetryFieldsNameEnum.END_INTERVAL_TIME_UNIT}`, | ||
| 145 | + getPopupContainer: () => document.body, | ||
| 138 | }, | 146 | }, |
| 139 | }, | 147 | }, |
| 140 | { | 148 | { |
| 141 | - field: NodeBindDataFieldEnum.START_INTERVAL_PATTERN, | 149 | + field: OriginatorTelemetryFieldsEnum.START_INTERVAL_PATTERN, |
| 142 | component: 'Input', | 150 | component: 'Input', |
| 143 | - label: NodeBindDataFieldNameEnum.START_INTERVAL_PATTERN, | 151 | + label: OriginatorTelemetryFieldsNameEnum.START_INTERVAL_PATTERN, |
| 144 | required: true, | 152 | required: true, |
| 145 | helpMessage: [ | 153 | helpMessage: [ |
| 146 | 'Hint: use ${metadataKey} for value from metadata, $[messageKey] for value from message body', | 154 | 'Hint: use ${metadataKey} for value from metadata, $[messageKey] for value from message body', |
| 147 | ], | 155 | ], |
| 148 | - show: ({ model }) => model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | 156 | + ifShow: ({ model }) => model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], |
| 157 | + componentProps: { | ||
| 158 | + placeholder: `请输入${OriginatorTelemetryFieldsNameEnum.START_INTERVAL_PATTERN}`, | ||
| 159 | + }, | ||
| 149 | }, | 160 | }, |
| 150 | { | 161 | { |
| 151 | - field: NodeBindDataFieldEnum.END_INTERVAL_PATTERN, | 162 | + field: OriginatorTelemetryFieldsEnum.END_INTERVAL_PATTERN, |
| 152 | component: 'Input', | 163 | component: 'Input', |
| 153 | - label: NodeBindDataFieldNameEnum.END_INTERVAL_PATTERN, | 164 | + label: OriginatorTelemetryFieldsNameEnum.END_INTERVAL_PATTERN, |
| 154 | required: true, | 165 | required: true, |
| 155 | helpMessage: [ | 166 | helpMessage: [ |
| 156 | 'Hint: use ${metadataKey} for value from metadata, $[messageKey] for value from message body', | 167 | 'Hint: use ${metadataKey} for value from metadata, $[messageKey] for value from message body', |
| 157 | ], | 168 | ], |
| 158 | - show: ({ model }) => model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | 169 | + ifShow: ({ model }) => model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], |
| 170 | + componentProps: { | ||
| 171 | + placeholder: `请输入${OriginatorTelemetryFieldsNameEnum.END_INTERVAL_PATTERN}`, | ||
| 172 | + }, | ||
| 159 | }, | 173 | }, |
| 160 | ]; | 174 | ]; |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | ||
| 2 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; | 1 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
| 3 | import { FormSchema, useComponentRegister } from '/@/components/Form'; | 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
| 4 | import { RelationsQuery } from '/@/views/rule/designer/src/components/RelationsQuery'; | 3 | import { RelationsQuery } from '/@/views/rule/designer/src/components/RelationsQuery'; |
| 4 | +import { | ||
| 5 | + RelatedAttributesFieldsEnum, | ||
| 6 | + RelatedAttributesFieldsNameEnum, | ||
| 7 | +} from '../../../enum/formField/enrichment'; | ||
| 5 | 8 | ||
| 6 | useComponentRegister('RelationsQuery', RelationsQuery); | 9 | useComponentRegister('RelationsQuery', RelationsQuery); |
| 7 | useComponentRegister('AttributeConfiguration', AttributeConfiguration); | 10 | useComponentRegister('AttributeConfiguration', AttributeConfiguration); |
| 8 | 11 | ||
| 9 | export const formSchemas: FormSchema[] = [ | 12 | export const formSchemas: FormSchema[] = [ |
| 10 | { | 13 | { |
| 11 | - field: NodeBindDataFieldEnum.RELATIONS_QUERY, | 14 | + field: RelatedAttributesFieldsEnum.RELATIONS_QUERY, |
| 12 | component: 'RelationsQuery', | 15 | component: 'RelationsQuery', |
| 13 | - label: NodeBindDataFieldNameEnum.RELATIONS_QUERY, | 16 | + label: RelatedAttributesFieldsNameEnum.RELATIONS_QUERY, |
| 14 | changeEvent: 'update:value', | 17 | changeEvent: 'update:value', |
| 15 | valueField: 'value', | 18 | valueField: 'value', |
| 16 | - slot: NodeBindDataFieldEnum.RELATIONS_QUERY, | 19 | + slot: RelatedAttributesFieldsEnum.RELATIONS_QUERY, |
| 17 | }, | 20 | }, |
| 18 | { | 21 | { |
| 19 | - field: NodeBindDataFieldEnum.TELEMETRY, | 22 | + field: RelatedAttributesFieldsEnum.TELEMETRY, |
| 20 | component: 'Checkbox', | 23 | component: 'Checkbox', |
| 21 | label: '', | 24 | label: '', |
| 22 | renderComponentContent: () => ({ | 25 | renderComponentContent: () => ({ |
| 23 | - default: () => NodeBindDataFieldNameEnum.TELEMETRY, | 26 | + default: () => RelatedAttributesFieldsNameEnum.TELEMETRY, |
| 24 | }), | 27 | }), |
| 25 | }, | 28 | }, |
| 26 | { | 29 | { |
| 27 | - field: NodeBindDataFieldEnum.ATTR_MAPING, | 30 | + field: RelatedAttributesFieldsEnum.ATTR_MAPPING, |
| 28 | component: 'AttributeConfiguration', | 31 | component: 'AttributeConfiguration', |
| 29 | label: '', | 32 | label: '', |
| 30 | - slot: NodeBindDataFieldEnum.ATTR_MAPING, | 33 | + slot: RelatedAttributesFieldsEnum.ATTR_MAPPING, |
| 31 | }, | 34 | }, |
| 32 | ]; | 35 | ]; |
| @@ -5,8 +5,8 @@ | @@ -5,8 +5,8 @@ | ||
| 5 | import { NodeData } from '../../../types/node'; | 5 | import { NodeData } from '../../../types/node'; |
| 6 | import { RelationsQuery } from '/@/views/rule/designer/src/components/RelationsQuery'; | 6 | import { RelationsQuery } from '/@/views/rule/designer/src/components/RelationsQuery'; |
| 7 | import { ref, unref } from 'vue'; | 7 | import { ref, unref } from 'vue'; |
| 8 | - import { NodeBindDataFieldEnum } from '../../../enum/node'; | ||
| 9 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; | 8 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
| 9 | + import { RelatedAttributesFieldsEnum } from '../../../enum/formField/enrichment'; | ||
| 10 | 10 | ||
| 11 | defineProps<{ | 11 | defineProps<{ |
| 12 | config: NodeData; | 12 | config: NodeData; |
| @@ -30,8 +30,8 @@ | @@ -30,8 +30,8 @@ | ||
| 30 | const attrMapping = unref(attributeControlElRef)?.getFieldsValue(); | 30 | const attrMapping = unref(attributeControlElRef)?.getFieldsValue(); |
| 31 | return { | 31 | return { |
| 32 | ...value, | 32 | ...value, |
| 33 | - [NodeBindDataFieldEnum.RELATIONS_QUERY]: queryValue, | ||
| 34 | - [NodeBindDataFieldEnum.ATTR_MAPING]: attrMapping, | 33 | + [RelatedAttributesFieldsEnum.RELATIONS_QUERY]: queryValue, |
| 34 | + [RelatedAttributesFieldsEnum.ATTR_MAPPING]: attrMapping, | ||
| 35 | }; | 35 | }; |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| @@ -39,9 +39,9 @@ | @@ -39,9 +39,9 @@ | ||
| 39 | resetFields(); | 39 | resetFields(); |
| 40 | setFieldsValue(value); | 40 | setFieldsValue(value); |
| 41 | unref(relationsQueryElRef)?.setFieldsValue( | 41 | unref(relationsQueryElRef)?.setFieldsValue( |
| 42 | - value?.[NodeBindDataFieldEnum.RELATIONS_QUERY] as Recordable | 42 | + value?.[RelatedAttributesFieldsEnum.RELATIONS_QUERY] as Recordable |
| 43 | ); | 43 | ); |
| 44 | - unref(attributeControlElRef)?.setFieldsValue(value?.[NodeBindDataFieldEnum.ATTR_MAPING]); | 44 | + unref(attributeControlElRef)?.setFieldsValue(value?.[RelatedAttributesFieldsEnum.ATTR_MAPPING]); |
| 45 | }; | 45 | }; |
| 46 | 46 | ||
| 47 | defineExpose({ | 47 | defineExpose({ |
| @@ -59,7 +59,9 @@ | @@ -59,7 +59,9 @@ | ||
| 59 | <AttributeConfiguration | 59 | <AttributeConfiguration |
| 60 | v-model:value="model[field]" | 60 | v-model:value="model[field]" |
| 61 | ref="attributeControlElRef" | 61 | ref="attributeControlElRef" |
| 62 | - :keyLabel="`Source ${model[NodeBindDataFieldEnum.TELEMETRY] ? 'telemetry' : 'attribute'}`" | 62 | + :keyLabel="`Source ${ |
| 63 | + model[RelatedAttributesFieldsEnum.TELEMETRY] ? 'telemetry' : 'attribute' | ||
| 64 | + }`" | ||
| 63 | valueLabel="Target attribute" | 65 | valueLabel="Target attribute" |
| 64 | > | 66 | > |
| 65 | <template #afterForm> | 67 | <template #afterForm> |
| @@ -4,7 +4,11 @@ import { | @@ -4,7 +4,11 @@ import { | ||
| 4 | RelationTypeEnum, | 4 | RelationTypeEnum, |
| 5 | RelationTypeNameEnum, | 5 | RelationTypeNameEnum, |
| 6 | } from '../../../enum/form'; | 6 | } from '../../../enum/form'; |
| 7 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 7 | +import { |
| 8 | + RelatedDeviceAttributeFieldsEnum, | ||
| 9 | + RelatedDeviceAttributeFieldsNameEnum, | ||
| 10 | +} from '../../../enum/formField/enrichment'; | ||
| 11 | + | ||
| 8 | import { getDeviceTypes } from '/@/api/ruleChainDesigner'; | 12 | import { getDeviceTypes } from '/@/api/ruleChainDesigner'; |
| 9 | import { FormSchema } from '/@/components/Form'; | 13 | import { FormSchema } from '/@/components/Form'; |
| 10 | 14 | ||
| @@ -28,17 +32,17 @@ export interface DeviceRelationsQuery { | @@ -28,17 +32,17 @@ export interface DeviceRelationsQuery { | ||
| 28 | 32 | ||
| 29 | export const formSchemas: FormSchema[] = [ | 33 | export const formSchemas: FormSchema[] = [ |
| 30 | { | 34 | { |
| 31 | - field: NodeBindDataFieldEnum.FETCH_LAST_LEVEL_ONLY, | 35 | + field: RelatedDeviceAttributeFieldsEnum.FETCH_LAST_LEVEL_ONLY, |
| 32 | component: 'Checkbox', | 36 | component: 'Checkbox', |
| 33 | label: '', | 37 | label: '', |
| 34 | renderComponentContent: () => ({ | 38 | renderComponentContent: () => ({ |
| 35 | - default: () => NodeBindDataFieldNameEnum.FETCH_LAST_LEVEL_ONLY, | 39 | + default: () => RelatedDeviceAttributeFieldsNameEnum.FETCH_LAST_LEVEL_ONLY, |
| 36 | }), | 40 | }), |
| 37 | }, | 41 | }, |
| 38 | { | 42 | { |
| 39 | - field: NodeBindDataFieldEnum.DIRECTION, | 43 | + field: RelatedDeviceAttributeFieldsEnum.DIRECTION, |
| 40 | component: 'Select', | 44 | component: 'Select', |
| 41 | - label: NodeBindDataFieldNameEnum.DIRECTION, | 45 | + label: RelatedDeviceAttributeFieldsNameEnum.DIRECTION, |
| 42 | required: true, | 46 | required: true, |
| 43 | colProps: { span: 12 }, | 47 | colProps: { span: 12 }, |
| 44 | componentProps: { | 48 | componentProps: { |
| @@ -46,99 +50,100 @@ export const formSchemas: FormSchema[] = [ | @@ -46,99 +50,100 @@ export const formSchemas: FormSchema[] = [ | ||
| 46 | label: DirectionNameEnum[value], | 50 | label: DirectionNameEnum[value], |
| 47 | value, | 51 | value, |
| 48 | })), | 52 | })), |
| 49 | - placeholder: `请选择${NodeBindDataFieldNameEnum.DIRECTION}`, | 53 | + placeholder: `请选择${RelatedDeviceAttributeFieldsNameEnum.DIRECTION}`, |
| 50 | getPopupContainer: () => document.body, | 54 | getPopupContainer: () => document.body, |
| 51 | }, | 55 | }, |
| 52 | }, | 56 | }, |
| 53 | { | 57 | { |
| 54 | - field: NodeBindDataFieldEnum.MAX_LEVEL, | 58 | + field: RelatedDeviceAttributeFieldsEnum.MAX_LEVEL, |
| 55 | component: 'InputNumber', | 59 | component: 'InputNumber', |
| 56 | - label: NodeBindDataFieldNameEnum.MAX_LEVEL, | 60 | + label: RelatedDeviceAttributeFieldsNameEnum.MAX_LEVEL, |
| 57 | colProps: { span: 12 }, | 61 | colProps: { span: 12 }, |
| 58 | componentProps: { | 62 | componentProps: { |
| 59 | min: 1, | 63 | min: 1, |
| 64 | + placeholder: `请输入${RelatedDeviceAttributeFieldsNameEnum.MAX_LEVEL}`, | ||
| 60 | }, | 65 | }, |
| 61 | }, | 66 | }, |
| 62 | { | 67 | { |
| 63 | - field: NodeBindDataFieldEnum.RELATION_TYPE, | 68 | + field: RelatedDeviceAttributeFieldsEnum.RELATION_TYPE, |
| 64 | component: 'Select', | 69 | component: 'Select', |
| 65 | - label: NodeBindDataFieldNameEnum.RELATION_TYPE, | 70 | + label: RelatedDeviceAttributeFieldsNameEnum.RELATION_TYPE, |
| 66 | componentProps: { | 71 | componentProps: { |
| 67 | options: Object.keys(RelationTypeEnum).map((value) => ({ | 72 | options: Object.keys(RelationTypeEnum).map((value) => ({ |
| 68 | label: RelationTypeNameEnum[value], | 73 | label: RelationTypeNameEnum[value], |
| 69 | value, | 74 | value, |
| 70 | })), | 75 | })), |
| 71 | - placeholder: `请选择${NodeBindDataFieldNameEnum.RELATION_TYPE}`, | 76 | + placeholder: `请选择${RelatedDeviceAttributeFieldsNameEnum.RELATION_TYPE}`, |
| 72 | getPopupContainer: () => document.body, | 77 | getPopupContainer: () => document.body, |
| 73 | }, | 78 | }, |
| 74 | }, | 79 | }, |
| 75 | { | 80 | { |
| 76 | - field: NodeBindDataFieldEnum.DEVICE_TYPES, | 81 | + field: RelatedDeviceAttributeFieldsEnum.DEVICE_TYPES, |
| 77 | component: 'ApiSelect', | 82 | component: 'ApiSelect', |
| 78 | - label: NodeBindDataFieldNameEnum.DEVICE_TYPES, | 83 | + label: RelatedDeviceAttributeFieldsNameEnum.DEVICE_TYPES, |
| 79 | componentProps: { | 84 | componentProps: { |
| 80 | mode: 'multiple', | 85 | mode: 'multiple', |
| 81 | api: getDeviceTypes, | 86 | api: getDeviceTypes, |
| 82 | labelField: 'type', | 87 | labelField: 'type', |
| 83 | valueField: 'type', | 88 | valueField: 'type', |
| 84 | getPopupContainer: () => document.body, | 89 | getPopupContainer: () => document.body, |
| 85 | - placeholder: `请选择${NodeBindDataFieldNameEnum.DEVICE_TYPES}`, | 90 | + placeholder: `请选择${RelatedDeviceAttributeFieldsNameEnum.DEVICE_TYPES}`, |
| 86 | }, | 91 | }, |
| 87 | }, | 92 | }, |
| 88 | { | 93 | { |
| 89 | - field: NodeBindDataFieldEnum.TELL_FAILURE_IF_ABSENT, | 94 | + field: RelatedDeviceAttributeFieldsEnum.TELL_FAILURE_IF_ABSENT, |
| 90 | component: 'Checkbox', | 95 | component: 'Checkbox', |
| 91 | label: '', | 96 | label: '', |
| 92 | renderComponentContent: () => ({ | 97 | renderComponentContent: () => ({ |
| 93 | - default: () => NodeBindDataFieldNameEnum.TELL_FAILURE_IF_ABSENT, | 98 | + default: () => RelatedDeviceAttributeFieldsNameEnum.TELL_FAILURE_IF_ABSENT, |
| 94 | }), | 99 | }), |
| 95 | }, | 100 | }, |
| 96 | { | 101 | { |
| 97 | - field: NodeBindDataFieldEnum.CLIENT_ATTRIBUTE_NAMES, | 102 | + field: RelatedDeviceAttributeFieldsEnum.CLIENT_ATTRIBUTE_NAMES, |
| 98 | component: 'Select', | 103 | component: 'Select', |
| 99 | - label: NodeBindDataFieldNameEnum.CLIENT_ATTRIBUTE_NAMES, | 104 | + label: RelatedDeviceAttributeFieldsNameEnum.CLIENT_ATTRIBUTE_NAMES, |
| 100 | componentProps: { | 105 | componentProps: { |
| 101 | open: false, | 106 | open: false, |
| 102 | mode: 'tags', | 107 | mode: 'tags', |
| 103 | - placeholder: NodeBindDataFieldNameEnum.CLIENT_ATTRIBUTE_NAMES, | 108 | + placeholder: RelatedDeviceAttributeFieldsNameEnum.CLIENT_ATTRIBUTE_NAMES, |
| 104 | }, | 109 | }, |
| 105 | }, | 110 | }, |
| 106 | { | 111 | { |
| 107 | - field: NodeBindDataFieldEnum.SHARED_ATTRIBUTE_NAMES, | 112 | + field: RelatedDeviceAttributeFieldsEnum.SHARED_ATTRIBUTE_NAMES, |
| 108 | component: 'Select', | 113 | component: 'Select', |
| 109 | - label: NodeBindDataFieldNameEnum.SHARED_ATTRIBUTE_NAMES, | 114 | + label: RelatedDeviceAttributeFieldsNameEnum.SHARED_ATTRIBUTE_NAMES, |
| 110 | componentProps: { | 115 | componentProps: { |
| 111 | open: false, | 116 | open: false, |
| 112 | mode: 'tags', | 117 | mode: 'tags', |
| 113 | - placeholder: NodeBindDataFieldNameEnum.SHARED_ATTRIBUTE_NAMES, | 118 | + placeholder: RelatedDeviceAttributeFieldsNameEnum.SHARED_ATTRIBUTE_NAMES, |
| 114 | }, | 119 | }, |
| 115 | }, | 120 | }, |
| 116 | { | 121 | { |
| 117 | - field: NodeBindDataFieldEnum.SERVER_ATTRIBUTE_NAMES, | 122 | + field: RelatedDeviceAttributeFieldsEnum.SERVER_ATTRIBUTE_NAMES, |
| 118 | component: 'Select', | 123 | component: 'Select', |
| 119 | - label: NodeBindDataFieldNameEnum.SERVER_ATTRIBUTE_NAMES, | 124 | + label: RelatedDeviceAttributeFieldsNameEnum.SERVER_ATTRIBUTE_NAMES, |
| 120 | componentProps: { | 125 | componentProps: { |
| 121 | open: false, | 126 | open: false, |
| 122 | mode: 'tags', | 127 | mode: 'tags', |
| 123 | - placeholder: NodeBindDataFieldNameEnum.SERVER_ATTRIBUTE_NAMES, | 128 | + placeholder: RelatedDeviceAttributeFieldsNameEnum.SERVER_ATTRIBUTE_NAMES, |
| 124 | }, | 129 | }, |
| 125 | }, | 130 | }, |
| 126 | { | 131 | { |
| 127 | - field: NodeBindDataFieldEnum.LATEST_TS_KEY_NAMES, | 132 | + field: RelatedDeviceAttributeFieldsEnum.LATEST_TS_KEY_NAMES, |
| 128 | component: 'Select', | 133 | component: 'Select', |
| 129 | - label: NodeBindDataFieldNameEnum.LATEST_TS_KEY_NAMES, | 134 | + label: RelatedDeviceAttributeFieldsNameEnum.LATEST_TS_KEY_NAMES, |
| 130 | componentProps: { | 135 | componentProps: { |
| 131 | open: false, | 136 | open: false, |
| 132 | mode: 'tags', | 137 | mode: 'tags', |
| 133 | - placeholder: NodeBindDataFieldNameEnum.LATEST_TS_KEY_NAMES, | 138 | + placeholder: RelatedDeviceAttributeFieldsNameEnum.LATEST_TS_KEY_NAMES, |
| 134 | }, | 139 | }, |
| 135 | }, | 140 | }, |
| 136 | { | 141 | { |
| 137 | - field: NodeBindDataFieldEnum.GET_LATEST_VALUE_WITH_TS, | 142 | + field: RelatedDeviceAttributeFieldsEnum.GET_LATEST_VALUE_WITH_TS, |
| 138 | component: 'Checkbox', | 143 | component: 'Checkbox', |
| 139 | label: '', | 144 | label: '', |
| 140 | renderComponentContent: () => ({ | 145 | renderComponentContent: () => ({ |
| 141 | - default: () => NodeBindDataFieldNameEnum.GET_LATEST_VALUE_WITH_TS, | 146 | + default: () => RelatedDeviceAttributeFieldsNameEnum.GET_LATEST_VALUE_WITH_TS, |
| 142 | }), | 147 | }), |
| 143 | }, | 148 | }, |
| 144 | ]; | 149 | ]; |
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | import { BasicForm, useForm } from '/@/components/Form'; | 3 | import { BasicForm, useForm } from '/@/components/Form'; |
| 4 | import { DeviceRelationsQuery, formSchemas, ValueType } from './create.config'; | 4 | import { DeviceRelationsQuery, formSchemas, ValueType } from './create.config'; |
| 5 | import { NodeData } from '../../../types/node'; | 5 | import { NodeData } from '../../../types/node'; |
| 6 | - import { NodeBindDataFieldEnum } from '../../../enum/node'; | 6 | + import { RelatedDeviceAttributeFieldsEnum } from '../../../enum/formField/enrichment'; |
| 7 | 7 | ||
| 8 | defineProps<{ | 8 | defineProps<{ |
| 9 | config: NodeData; | 9 | config: NodeData; |
| @@ -18,32 +18,40 @@ | @@ -18,32 +18,40 @@ | ||
| 18 | await validate(); | 18 | await validate(); |
| 19 | const value = getFieldsValue() || {}; | 19 | const value = getFieldsValue() || {}; |
| 20 | return { | 20 | return { |
| 21 | - [NodeBindDataFieldEnum.DEVICE_RELATIONS_QUERY]: { | ||
| 22 | - [NodeBindDataFieldEnum.FETCH_LAST_LEVEL_ONLY]: | ||
| 23 | - value[NodeBindDataFieldEnum.FETCH_LAST_LEVEL_ONLY], | ||
| 24 | - [NodeBindDataFieldEnum.DEVICE_TYPES]: value[NodeBindDataFieldEnum.DEVICE_TYPES], | ||
| 25 | - [NodeBindDataFieldEnum.DIRECTION]: value[NodeBindDataFieldEnum.DIRECTION], | ||
| 26 | - [NodeBindDataFieldEnum.MAX_LEVEL]: value[NodeBindDataFieldEnum.MAX_LEVEL], | ||
| 27 | - [NodeBindDataFieldEnum.RELATION_TYPE]: value[NodeBindDataFieldEnum.RELATION_TYPE], | 21 | + [RelatedDeviceAttributeFieldsEnum.DEVICE_RELATIONS_QUERY]: { |
| 22 | + [RelatedDeviceAttributeFieldsEnum.FETCH_LAST_LEVEL_ONLY]: | ||
| 23 | + value[RelatedDeviceAttributeFieldsEnum.FETCH_LAST_LEVEL_ONLY], | ||
| 24 | + [RelatedDeviceAttributeFieldsEnum.DEVICE_TYPES]: | ||
| 25 | + value[RelatedDeviceAttributeFieldsEnum.DEVICE_TYPES], | ||
| 26 | + [RelatedDeviceAttributeFieldsEnum.DIRECTION]: | ||
| 27 | + value[RelatedDeviceAttributeFieldsEnum.DIRECTION], | ||
| 28 | + [RelatedDeviceAttributeFieldsEnum.MAX_LEVEL]: | ||
| 29 | + value[RelatedDeviceAttributeFieldsEnum.MAX_LEVEL], | ||
| 30 | + [RelatedDeviceAttributeFieldsEnum.RELATION_TYPE]: | ||
| 31 | + value[RelatedDeviceAttributeFieldsEnum.RELATION_TYPE], | ||
| 28 | } as DeviceRelationsQuery, | 32 | } as DeviceRelationsQuery, |
| 29 | - [NodeBindDataFieldEnum.CLIENT_ATTRIBUTE_NAMES]: | ||
| 30 | - value[NodeBindDataFieldEnum.CLIENT_ATTRIBUTE_NAMES], | ||
| 31 | - [NodeBindDataFieldEnum.GET_LATEST_VALUE_WITH_TS]: | ||
| 32 | - value[NodeBindDataFieldEnum.GET_LATEST_VALUE_WITH_TS], | ||
| 33 | - [NodeBindDataFieldEnum.LATEST_TS_KEY_NAMES]: value[NodeBindDataFieldEnum.LATEST_TS_KEY_NAMES], | ||
| 34 | - [NodeBindDataFieldEnum.SERVER_ATTRIBUTE_NAMES]: | ||
| 35 | - value[NodeBindDataFieldEnum.SERVER_ATTRIBUTE_NAMES], | ||
| 36 | - [NodeBindDataFieldEnum.SHARED_ATTRIBUTE_NAMES]: | ||
| 37 | - value[NodeBindDataFieldEnum.SHARED_ATTRIBUTE_NAMES], | ||
| 38 | - [NodeBindDataFieldEnum.TELL_FAILURE_IF_ABSENT]: | ||
| 39 | - value[NodeBindDataFieldEnum.TELL_FAILURE_IF_ABSENT], | 33 | + [RelatedDeviceAttributeFieldsEnum.CLIENT_ATTRIBUTE_NAMES]: |
| 34 | + value[RelatedDeviceAttributeFieldsEnum.CLIENT_ATTRIBUTE_NAMES], | ||
| 35 | + [RelatedDeviceAttributeFieldsEnum.GET_LATEST_VALUE_WITH_TS]: | ||
| 36 | + value[RelatedDeviceAttributeFieldsEnum.GET_LATEST_VALUE_WITH_TS], | ||
| 37 | + [RelatedDeviceAttributeFieldsEnum.LATEST_TS_KEY_NAMES]: | ||
| 38 | + value[RelatedDeviceAttributeFieldsEnum.LATEST_TS_KEY_NAMES], | ||
| 39 | + [RelatedDeviceAttributeFieldsEnum.SERVER_ATTRIBUTE_NAMES]: | ||
| 40 | + value[RelatedDeviceAttributeFieldsEnum.SERVER_ATTRIBUTE_NAMES], | ||
| 41 | + [RelatedDeviceAttributeFieldsEnum.SHARED_ATTRIBUTE_NAMES]: | ||
| 42 | + value[RelatedDeviceAttributeFieldsEnum.SHARED_ATTRIBUTE_NAMES], | ||
| 43 | + [RelatedDeviceAttributeFieldsEnum.TELL_FAILURE_IF_ABSENT]: | ||
| 44 | + value[RelatedDeviceAttributeFieldsEnum.TELL_FAILURE_IF_ABSENT], | ||
| 40 | } as ValueType; | 45 | } as ValueType; |
| 41 | }; | 46 | }; |
| 42 | 47 | ||
| 43 | const setValue: CreateModalDefineExposeType['setFieldsValue'] = (value) => { | 48 | const setValue: CreateModalDefineExposeType['setFieldsValue'] = (value) => { |
| 44 | resetFields(); | 49 | resetFields(); |
| 45 | console.log(value); | 50 | console.log(value); |
| 46 | - setFieldsValue({ ...value, ...(value?.[NodeBindDataFieldEnum.DEVICE_RELATIONS_QUERY] || {}) }); | 51 | + setFieldsValue({ |
| 52 | + ...value, | ||
| 53 | + ...(value?.[RelatedDeviceAttributeFieldsEnum.DEVICE_RELATIONS_QUERY] || {}), | ||
| 54 | + }); | ||
| 47 | }; | 55 | }; |
| 48 | 56 | ||
| 49 | defineExpose({ | 57 | defineExpose({ |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { |
| 2 | + TenantAttributesFieldsEnum, | ||
| 3 | + TenantAttributesFieldsNameEnum, | ||
| 4 | +} from '../../../enum/formField/enrichment'; | ||
| 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; | 5 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
| 3 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; | 6 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
| 4 | 7 | ||
| @@ -6,20 +9,20 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); | @@ -6,20 +9,20 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); | ||
| 6 | 9 | ||
| 7 | export const formSchemas: FormSchema[] = [ | 10 | export const formSchemas: FormSchema[] = [ |
| 8 | { | 11 | { |
| 9 | - field: NodeBindDataFieldEnum.TELEMETRY, | 12 | + field: TenantAttributesFieldsEnum.TELEMETRY, |
| 10 | component: 'Checkbox', | 13 | component: 'Checkbox', |
| 11 | label: '', | 14 | label: '', |
| 12 | renderComponentContent: () => { | 15 | renderComponentContent: () => { |
| 13 | return { | 16 | return { |
| 14 | - default: () => NodeBindDataFieldNameEnum.TELEMETRY, | 17 | + default: () => TenantAttributesFieldsNameEnum.TELEMETRY, |
| 15 | }; | 18 | }; |
| 16 | }, | 19 | }, |
| 17 | }, | 20 | }, |
| 18 | { | 21 | { |
| 19 | - field: NodeBindDataFieldEnum.ATTR_MAPING, | 22 | + field: TenantAttributesFieldsEnum.ATTR_MAPING, |
| 20 | component: 'AttributeConfiguration', | 23 | component: 'AttributeConfiguration', |
| 21 | - label: NodeBindDataFieldNameEnum.ATTR_MAPING, | ||
| 22 | - slot: NodeBindDataFieldEnum.ATTR_MAPING, | 24 | + label: TenantAttributesFieldsNameEnum.ATTR_MAPING, |
| 25 | + slot: TenantAttributesFieldsEnum.ATTR_MAPING, | ||
| 23 | valueField: 'value', | 26 | valueField: 'value', |
| 24 | changeEvent: 'update:value', | 27 | changeEvent: 'update:value', |
| 25 | }, | 28 | }, |
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | import { credentialsTypeOptions, FileItemType, formSchemas } from './config'; | 4 | import { credentialsTypeOptions, FileItemType, formSchemas } from './config'; |
| 5 | import { ref, watch } from 'vue'; | 5 | import { ref, watch } from 'vue'; |
| 6 | import { buildUUID } from '/@/utils/uuid'; | 6 | import { buildUUID } from '/@/utils/uuid'; |
| 7 | - import { CredentialsTypeEnum, CredentialsTypeNameEnum } from '../../../../enum/form'; | 7 | + import { CredentialsTypeEnum, CredentialsTypeNameEnum } from './config'; |
| 8 | import { AzureIotHubFieldsEnum } from '../../../../enum/formField/external'; | 8 | import { AzureIotHubFieldsEnum } from '../../../../enum/formField/external'; |
| 9 | 9 | ||
| 10 | const props = withDefaults( | 10 | const props = withDefaults( |
| @@ -59,7 +59,7 @@ | @@ -59,7 +59,7 @@ | ||
| 59 | value, | 59 | value, |
| 60 | AzureIotHubFieldsEnum.CA_CERT_FILE_NAME | 60 | AzureIotHubFieldsEnum.CA_CERT_FILE_NAME |
| 61 | ), | 61 | ), |
| 62 | - [AzureIotHubFieldsEnum.CA_CERT]: getFileValue(value?.[AzureIotHubFieldsEnum.CERT]), | 62 | + [AzureIotHubFieldsEnum.CERT]: getFileValue(value?.[AzureIotHubFieldsEnum.CERT]), |
| 63 | [AzureIotHubFieldsEnum.CERT_FILE_NAME]: getValueByKey( | 63 | [AzureIotHubFieldsEnum.CERT_FILE_NAME]: getValueByKey( |
| 64 | value, | 64 | value, |
| 65 | AzureIotHubFieldsEnum.CERT_FILE_NAME | 65 | AzureIotHubFieldsEnum.CERT_FILE_NAME |
| 1 | import { GcpPubsubFieldsEnum, GcpPubsubFieldsNameEnum } from '../../../enum/formField/external'; | 1 | import { GcpPubsubFieldsEnum, GcpPubsubFieldsNameEnum } from '../../../enum/formField/external'; |
| 2 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; | 2 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
| 3 | -import { FileItemType, getFileData } from '../../../src/components/CredentialsCard/config'; | 3 | +import { FileItemType, getFileData } from '../AzureIotHub/CredentialsCard/config'; |
| 4 | import { FormSchema, useComponentRegister } from '/@/components/Form'; | 4 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
| 5 | 5 | ||
| 6 | useComponentRegister('AttributeConfiguration', AttributeConfiguration); | 6 | useComponentRegister('AttributeConfiguration', AttributeConfiguration); |
| @@ -27,6 +27,7 @@ export const formSchemas: FormSchema[] = [ | @@ -27,6 +27,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 27 | allowClear: true, | 27 | allowClear: true, |
| 28 | options: Object.keys(MessagePropertiesEnum).map((value) => ({ label: value, value })), | 28 | options: Object.keys(MessagePropertiesEnum).map((value) => ({ label: value, value })), |
| 29 | placeholder: `请选择${RabbitmqFieldsNameEnum.ROUTING_KEY_PATTERN}`, | 29 | placeholder: `请选择${RabbitmqFieldsNameEnum.ROUTING_KEY_PATTERN}`, |
| 30 | + getPopupContainer: () => document.body, | ||
| 30 | }, | 31 | }, |
| 31 | }, | 32 | }, |
| 32 | { | 33 | { |
| @@ -80,8 +80,7 @@ export const formSchemas: FormSchema[] = [ | @@ -80,8 +80,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 80 | component: 'Select', | 80 | component: 'Select', |
| 81 | required: true, | 81 | required: true, |
| 82 | ifShow: ({ model }) => | 82 | ifShow: ({ model }) => |
| 83 | - model[SendEmailFieldsEnum.TLS_VERSION] && | ||
| 84 | - !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS], | 83 | + model[SendEmailFieldsEnum.ENABLE_TLS] && !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS], |
| 85 | componentProps: { | 84 | componentProps: { |
| 86 | options: Object.keys(TSLVersionEnum).map((value) => ({ | 85 | options: Object.keys(TSLVersionEnum).map((value) => ({ |
| 87 | label: TSLVersionNameEnum[value], | 86 | label: TSLVersionNameEnum[value], |
| @@ -107,7 +106,8 @@ export const formSchemas: FormSchema[] = [ | @@ -107,7 +106,8 @@ export const formSchemas: FormSchema[] = [ | ||
| 107 | required: true, | 106 | required: true, |
| 108 | colProps: { span: 12 }, | 107 | colProps: { span: 12 }, |
| 109 | ifShow: ({ model }) => | 108 | ifShow: ({ model }) => |
| 110 | - !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS] && model[SendEmailFieldsEnum.PROXY_HOST], | 109 | + !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS] && |
| 110 | + model[SendEmailFieldsEnum.ENABLE_PROXY], | ||
| 111 | componentProps: { | 111 | componentProps: { |
| 112 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_HOST}`, | 112 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_HOST}`, |
| 113 | }, | 113 | }, |
| @@ -119,7 +119,8 @@ export const formSchemas: FormSchema[] = [ | @@ -119,7 +119,8 @@ export const formSchemas: FormSchema[] = [ | ||
| 119 | required: true, | 119 | required: true, |
| 120 | colProps: { span: 12 }, | 120 | colProps: { span: 12 }, |
| 121 | ifShow: ({ model }) => | 121 | ifShow: ({ model }) => |
| 122 | - !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS] && model[SendEmailFieldsEnum.PROXY_PORT], | 122 | + !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS] && |
| 123 | + model[SendEmailFieldsEnum.ENABLE_PROXY], | ||
| 123 | componentProps: { | 124 | componentProps: { |
| 124 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_PORT}`, | 125 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_PORT}`, |
| 125 | }, | 126 | }, |
| @@ -129,7 +130,8 @@ export const formSchemas: FormSchema[] = [ | @@ -129,7 +130,8 @@ export const formSchemas: FormSchema[] = [ | ||
| 129 | label: SendEmailFieldsNameEnum.PROXY_USER, | 130 | label: SendEmailFieldsNameEnum.PROXY_USER, |
| 130 | component: 'Input', | 131 | component: 'Input', |
| 131 | ifShow: ({ model }) => | 132 | ifShow: ({ model }) => |
| 132 | - !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS] && model[SendEmailFieldsEnum.PROXY_USER], | 133 | + !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS] && |
| 134 | + model[SendEmailFieldsEnum.ENABLE_PROXY], | ||
| 133 | componentProps: { | 135 | componentProps: { |
| 134 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_USER}`, | 136 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_USER}`, |
| 135 | }, | 137 | }, |
| @@ -138,7 +140,9 @@ export const formSchemas: FormSchema[] = [ | @@ -138,7 +140,9 @@ export const formSchemas: FormSchema[] = [ | ||
| 138 | field: SendEmailFieldsEnum.PROXY_PASSWORD, | 140 | field: SendEmailFieldsEnum.PROXY_PASSWORD, |
| 139 | label: SendEmailFieldsNameEnum.PROXY_PASSWORD, | 141 | label: SendEmailFieldsNameEnum.PROXY_PASSWORD, |
| 140 | component: 'Input', | 142 | component: 'Input', |
| 141 | - ifShow: ({ model }) => !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS], | 143 | + ifShow: ({ model }) => |
| 144 | + !model[SendEmailFieldsEnum.USE_SYSTEM_SMTP_SETTINGS] && | ||
| 145 | + model[SendEmailFieldsEnum.ENABLE_PROXY], | ||
| 142 | componentProps: { | 146 | componentProps: { |
| 143 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_PASSWORD}`, | 147 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_PASSWORD}`, |
| 144 | }, | 148 | }, |
| @@ -58,7 +58,7 @@ export const formSchemas: FormSchema[] = [ | @@ -58,7 +58,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 58 | !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] && | 58 | !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] && |
| 59 | model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.TWILIO, | 59 | model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.TWILIO, |
| 60 | componentProps: { | 60 | componentProps: { |
| 61 | - placeholder: `请输入${SendSMSFieldsEnum.NUMBER_FROM}`, | 61 | + placeholder: `请输入${SendSMSFieldsNameEnum.NUMBER_FROM}`, |
| 62 | }, | 62 | }, |
| 63 | }, | 63 | }, |
| 64 | { | 64 | { |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { |
| 2 | + CheckAlarmStatusFieldEnum, | ||
| 3 | + CheckAlarmStatusFieldNameEnum, | ||
| 4 | +} from '../../../enum/formField/filter'; | ||
| 2 | import { FormSchema } from '/@/components/Form'; | 5 | import { FormSchema } from '/@/components/Form'; |
| 3 | import { AlarmStatus, AlarmStatusMean } from '/@/enums/alarmEnum'; | 6 | import { AlarmStatus, AlarmStatusMean } from '/@/enums/alarmEnum'; |
| 4 | 7 | ||
| 5 | export const formSchemas: FormSchema[] = [ | 8 | export const formSchemas: FormSchema[] = [ |
| 6 | { | 9 | { |
| 7 | - field: NodeBindDataFieldEnum.ALARM_STATUS_LIST, | 10 | + field: CheckAlarmStatusFieldEnum.ALARM_STATUS_LIST, |
| 8 | component: 'Select', | 11 | component: 'Select', |
| 9 | - label: NodeBindDataFieldNameEnum.ALARM_STATUS_LIST, | 12 | + label: CheckAlarmStatusFieldNameEnum.ALARM_STATUS_LIST, |
| 10 | required: true, | 13 | required: true, |
| 11 | componentProps: { | 14 | componentProps: { |
| 12 | mode: 'multiple', | 15 | mode: 'multiple', |
| 13 | getPopupContainer: () => document.body, | 16 | getPopupContainer: () => document.body, |
| 14 | - placeholder: `请选择${NodeBindDataFieldNameEnum.ALARM_STATUS_LIST}`, | 17 | + placeholder: `请选择${CheckAlarmStatusFieldNameEnum.ALARM_STATUS_LIST}`, |
| 15 | options: [ | 18 | options: [ |
| 16 | { | 19 | { |
| 17 | label: AlarmStatusMean[AlarmStatus.CLEARED_UN_ACK], | 20 | label: AlarmStatusMean[AlarmStatus.CLEARED_UN_ACK], |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { |
| 2 | + CheckExistenceFieldsEnum, | ||
| 3 | + CheckExistenceFieldsNameEnum, | ||
| 4 | +} from '../../../enum/formField/filter'; | ||
| 2 | import { FormSchema } from '/@/components/Form'; | 5 | import { FormSchema } from '/@/components/Form'; |
| 3 | 6 | ||
| 4 | export const formSchemas: FormSchema[] = [ | 7 | export const formSchemas: FormSchema[] = [ |
| 5 | { | 8 | { |
| 6 | - field: NodeBindDataFieldEnum.MESSAGE_NAMES, | 9 | + field: CheckExistenceFieldsEnum.MESSAGE_NAMES, |
| 7 | component: 'Select', | 10 | component: 'Select', |
| 8 | - label: NodeBindDataFieldNameEnum.MESSAGE_NAMES, | 11 | + label: CheckExistenceFieldsNameEnum.MESSAGE_NAMES, |
| 9 | componentProps: { | 12 | componentProps: { |
| 10 | mode: 'tags', | 13 | mode: 'tags', |
| 11 | open: false, | 14 | open: false, |
| 12 | getPopupContainer: () => document.body, | 15 | getPopupContainer: () => document.body, |
| 16 | + placeholder: `请选择${CheckExistenceFieldsNameEnum.MESSAGE_NAMES}`, | ||
| 13 | }, | 17 | }, |
| 14 | }, | 18 | }, |
| 15 | { | 19 | { |
| 16 | - field: NodeBindDataFieldEnum.METADATA_NAMES, | 20 | + field: CheckExistenceFieldsEnum.METADATA_NAMES, |
| 17 | component: 'Select', | 21 | component: 'Select', |
| 18 | - label: NodeBindDataFieldNameEnum.METADATA_NAMES, | 22 | + label: CheckExistenceFieldsNameEnum.METADATA_NAMES, |
| 19 | componentProps: { | 23 | componentProps: { |
| 20 | mode: 'tags', | 24 | mode: 'tags', |
| 21 | open: false, | 25 | open: false, |
| 22 | getPopupContainer: () => document.body, | 26 | getPopupContainer: () => document.body, |
| 27 | + placeholder: `请选择${CheckExistenceFieldsNameEnum.METADATA_NAMES}`, | ||
| 23 | }, | 28 | }, |
| 24 | }, | 29 | }, |
| 25 | { | 30 | { |
| 26 | - field: NodeBindDataFieldEnum.CHECK_ALL_KEYS, | 31 | + field: CheckExistenceFieldsEnum.CHECK_ALL_KEYS, |
| 27 | component: 'Checkbox', | 32 | component: 'Checkbox', |
| 28 | - label: NodeBindDataFieldNameEnum.CHECK_ALL_KEYS, | ||
| 29 | - labelWidth: 200, | 33 | + label: '', |
| 34 | + renderComponentContent: () => ({ | ||
| 35 | + default: () => CheckExistenceFieldsNameEnum.CHECK_ALL_KEYS, | ||
| 36 | + }), | ||
| 30 | }, | 37 | }, |
| 31 | ]; | 38 | ]; |
| @@ -6,70 +6,115 @@ import { | @@ -6,70 +6,115 @@ import { | ||
| 6 | RelationTypeEnum, | 6 | RelationTypeEnum, |
| 7 | RelationTypeNameEnum, | 7 | RelationTypeNameEnum, |
| 8 | } from '../../../enum/form'; | 8 | } from '../../../enum/form'; |
| 9 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | ||
| 10 | -import { deviceProfilePage } from '/@/api/device/deviceManager'; | 9 | +import { |
| 10 | + CheckRelationFieldsEnum, | ||
| 11 | + CheckRelationFieldsNameEnum, | ||
| 12 | +} from '../../../enum/formField/filter'; | ||
| 11 | import { FormSchema } from '/@/components/Form'; | 13 | import { FormSchema } from '/@/components/Form'; |
| 14 | +import { | ||
| 15 | + getEntityDevice, | ||
| 16 | + getEntityAssets, | ||
| 17 | + getEntityViews, | ||
| 18 | + getEntityTenant, | ||
| 19 | + getEntityCustomer, | ||
| 20 | + getEntityUser, | ||
| 21 | + getEntityDashboard, | ||
| 22 | + getEntityEdge, | ||
| 23 | +} from '/@/api/ruleChainDesigner'; | ||
| 24 | +import { useUserStore } from '/@/store/modules/user'; | ||
| 25 | + | ||
| 26 | +export const getEntityIdSelect = (type: EntityTypeEnum) => { | ||
| 27 | + const method = { | ||
| 28 | + [EntityTypeEnum.DEVICE]: getEntityDevice, | ||
| 29 | + [EntityTypeEnum.ASSET]: getEntityAssets, | ||
| 30 | + [EntityTypeEnum.ENTITY_VIEW]: getEntityViews, | ||
| 31 | + [EntityTypeEnum.TENANT]: async () => { | ||
| 32 | + const userInfo = useUserStore(); | ||
| 33 | + const params = { tenantId: userInfo.getUserInfo.tenantId! }; | ||
| 34 | + const result = await getEntityTenant(params); | ||
| 35 | + return Array.isArray(result) ? result : [result]; | ||
| 36 | + }, | ||
| 37 | + [EntityTypeEnum.CUSTOMER]: getEntityCustomer, | ||
| 38 | + [EntityTypeEnum.USER]: getEntityUser, | ||
| 39 | + [EntityTypeEnum.DASHBOARD]: getEntityDashboard, | ||
| 40 | + [EntityTypeEnum.EDGE]: getEntityEdge, | ||
| 41 | + }; | ||
| 42 | + | ||
| 43 | + const params: Recordable = { | ||
| 44 | + page: 0, | ||
| 45 | + pageSize: 50, | ||
| 46 | + }; | ||
| 47 | + | ||
| 48 | + return { | ||
| 49 | + placeholder: `请选择${EntityTypeNameEnum[type] ?? ''}`, | ||
| 50 | + resultField: 'data', | ||
| 51 | + labelField: 'name', | ||
| 52 | + valueField: 'id.id', | ||
| 53 | + searchField: 'textSearch', | ||
| 54 | + params, | ||
| 55 | + api: method[type], | ||
| 56 | + searchApi: method[type], | ||
| 57 | + }; | ||
| 58 | +}; | ||
| 12 | 59 | ||
| 13 | export const formSchemas: FormSchema[] = [ | 60 | export const formSchemas: FormSchema[] = [ |
| 14 | { | 61 | { |
| 15 | - field: NodeBindDataFieldEnum.NAME, | ||
| 16 | - component: 'Input', | ||
| 17 | - label: NodeBindDataFieldNameEnum.NAME, | ||
| 18 | - }, | ||
| 19 | - { | ||
| 20 | - field: NodeBindDataFieldEnum.CHECK_FOR_SINGLE_ENTITY, | 62 | + field: CheckRelationFieldsEnum.CHECK_FOR_SINGLE_ENTITY, |
| 21 | component: 'Checkbox', | 63 | component: 'Checkbox', |
| 22 | label: '', | 64 | label: '', |
| 23 | renderComponentContent: () => ({ | 65 | renderComponentContent: () => ({ |
| 24 | - default: () => NodeBindDataFieldNameEnum.CHECK_FOR_SINGLE_ENTITY, | 66 | + default: () => CheckRelationFieldsNameEnum.CHECK_FOR_SINGLE_ENTITY, |
| 25 | }), | 67 | }), |
| 26 | }, | 68 | }, |
| 27 | { | 69 | { |
| 28 | - field: NodeBindDataFieldEnum.DIRECTION, | 70 | + field: CheckRelationFieldsEnum.DIRECTION, |
| 29 | component: 'Select', | 71 | component: 'Select', |
| 30 | - label: NodeBindDataFieldEnum.DIRECTION, | 72 | + label: CheckRelationFieldsNameEnum.DIRECTION, |
| 31 | componentProps: { | 73 | componentProps: { |
| 32 | options: [ | 74 | options: [ |
| 33 | { label: DirectionNameEnum.FROM, value: DirectionEnum.FROM }, | 75 | { label: DirectionNameEnum.FROM, value: DirectionEnum.FROM }, |
| 34 | { label: DirectionNameEnum.TO, value: DirectionEnum.TO }, | 76 | { label: DirectionNameEnum.TO, value: DirectionEnum.TO }, |
| 35 | ], | 77 | ], |
| 78 | + placeholder: `请选择${CheckRelationFieldsNameEnum.DIRECTION}`, | ||
| 79 | + getPopupContainer: () => document.body, | ||
| 36 | }, | 80 | }, |
| 37 | }, | 81 | }, |
| 38 | { | 82 | { |
| 39 | - field: NodeBindDataFieldEnum.ENTITY_TYPE, | 83 | + field: CheckRelationFieldsEnum.ENTITY_TYPE, |
| 40 | component: 'Select', | 84 | component: 'Select', |
| 41 | - label: NodeBindDataFieldNameEnum.ENTITY_TYPE, | 85 | + label: CheckRelationFieldsNameEnum.ENTITY_TYPE, |
| 42 | colProps: { span: 8 }, | 86 | colProps: { span: 8 }, |
| 43 | - componentProps: { | ||
| 44 | - options: Object.keys(EntityTypeEnum).map((key) => ({ | ||
| 45 | - label: EntityTypeNameEnum[key], | ||
| 46 | - value: key, | ||
| 47 | - })), | 87 | + componentProps: ({ formActionType }) => { |
| 88 | + const { setFieldsValue } = formActionType; | ||
| 89 | + return { | ||
| 90 | + options: Object.keys(EntityTypeEnum).map((key) => ({ | ||
| 91 | + label: EntityTypeNameEnum[key], | ||
| 92 | + value: key, | ||
| 93 | + })), | ||
| 94 | + placeholder: `请选择${CheckRelationFieldsNameEnum.ENTITY_TYPE}`, | ||
| 95 | + getPopupContainer: () => document.body, | ||
| 96 | + onChange: () => { | ||
| 97 | + setFieldsValue({ [CheckRelationFieldsEnum.ENTITY_ID]: null }); | ||
| 98 | + }, | ||
| 99 | + }; | ||
| 48 | }, | 100 | }, |
| 49 | }, | 101 | }, |
| 50 | { | 102 | { |
| 51 | - field: NodeBindDataFieldEnum.ENTITY_ID, | ||
| 52 | - component: 'ApiSelectScrollLoad', | 103 | + field: CheckRelationFieldsEnum.ENTITY_ID, |
| 104 | + component: 'ApiSearchSelect', | ||
| 53 | label: ' ', | 105 | label: ' ', |
| 54 | colProps: { span: 16 }, | 106 | colProps: { span: 16 }, |
| 55 | - show: ({ model }) => model[NodeBindDataFieldEnum.ENTITY_TYPE], | 107 | + show: ({ model }) => model[CheckRelationFieldsEnum.ENTITY_TYPE], |
| 56 | componentProps: ({ formModel }) => { | 108 | componentProps: ({ formModel }) => { |
| 57 | - const entityType = formModel[NodeBindDataFieldEnum.ENTITY_TYPE]; | 109 | + const entityType = formModel[CheckRelationFieldsEnum.ENTITY_TYPE]; |
| 58 | 110 | ||
| 59 | - return { | ||
| 60 | - showSearch: true, | ||
| 61 | - api: deviceProfilePage, | ||
| 62 | - resultField: 'items', | ||
| 63 | - labelField: 'name', | ||
| 64 | - valueField: 'id', | ||
| 65 | - placeholder: `请选择${EntityTypeNameEnum[entityType]}`, | ||
| 66 | - }; | 111 | + return getEntityIdSelect(entityType); |
| 67 | }, | 112 | }, |
| 68 | }, | 113 | }, |
| 69 | { | 114 | { |
| 70 | - field: NodeBindDataFieldEnum.RELEATION_TYPE, | 115 | + field: CheckRelationFieldsEnum.RELEATION_TYPE, |
| 71 | component: 'Select', | 116 | component: 'Select', |
| 72 | - label: NodeBindDataFieldNameEnum.RELEATION_TYPE, | 117 | + label: CheckRelationFieldsNameEnum.RELEATION_TYPE, |
| 73 | defaultValue: RelationTypeEnum.CONTAINS, | 118 | defaultValue: RelationTypeEnum.CONTAINS, |
| 74 | componentProps: { | 119 | componentProps: { |
| 75 | options: Object.keys(RelationTypeEnum).map((value) => ({ | 120 | options: Object.keys(RelationTypeEnum).map((value) => ({ |
| 1 | import { PerimeterTypeEnum, RangeUtilEnum, RangeUtilNameEnum } from '../../../enum/form'; | 1 | import { PerimeterTypeEnum, RangeUtilEnum, RangeUtilNameEnum } from '../../../enum/form'; |
| 2 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 2 | +import { |
| 3 | + GpsGeofencingFilterFieldsEnum, | ||
| 4 | + GpsGeofencingFilterFieldsNameEnum, | ||
| 5 | +} from '../../../enum/formField/filter'; | ||
| 3 | import { FormSchema } from '/@/components/Form'; | 6 | import { FormSchema } from '/@/components/Form'; |
| 4 | 7 | ||
| 5 | export const formSchemas: FormSchema[] = [ | 8 | export const formSchemas: FormSchema[] = [ |
| 6 | { | 9 | { |
| 7 | - field: NodeBindDataFieldEnum.LATITUDE_KEY_NAME, | 10 | + field: GpsGeofencingFilterFieldsEnum.LATITUDE_KEY_NAME, |
| 8 | component: 'Input', | 11 | component: 'Input', |
| 9 | - label: NodeBindDataFieldNameEnum.LATITUDE_KEY_NAME, | 12 | + label: GpsGeofencingFilterFieldsNameEnum.LATITUDE_KEY_NAME, |
| 10 | }, | 13 | }, |
| 11 | { | 14 | { |
| 12 | - field: NodeBindDataFieldEnum.LONGITUDE_KEY_NAME, | 15 | + field: GpsGeofencingFilterFieldsEnum.LONGITUDE_KEY_NAME, |
| 13 | component: 'Input', | 16 | component: 'Input', |
| 14 | - label: NodeBindDataFieldNameEnum.LONGITUDE_KEY_NAME, | 17 | + label: GpsGeofencingFilterFieldsNameEnum.LONGITUDE_KEY_NAME, |
| 15 | }, | 18 | }, |
| 16 | { | 19 | { |
| 17 | - field: NodeBindDataFieldEnum.PERIMETER_TYPE, | 20 | + field: GpsGeofencingFilterFieldsEnum.PERIMETER_TYPE, |
| 18 | component: 'Select', | 21 | component: 'Select', |
| 19 | - label: NodeBindDataFieldNameEnum.PERIMETER_TYPE, | 22 | + label: GpsGeofencingFilterFieldsNameEnum.PERIMETER_TYPE, |
| 20 | componentProps: { | 23 | componentProps: { |
| 21 | options: Object.keys(PerimeterTypeEnum).map((value) => ({ label: value, value })), | 24 | options: Object.keys(PerimeterTypeEnum).map((value) => ({ label: value, value })), |
| 22 | }, | 25 | }, |
| 23 | }, | 26 | }, |
| 24 | { | 27 | { |
| 25 | - field: NodeBindDataFieldEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA, | 28 | + field: GpsGeofencingFilterFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA, |
| 26 | component: 'Checkbox', | 29 | component: 'Checkbox', |
| 27 | label: '', | 30 | label: '', |
| 28 | renderComponentContent: () => ({ | 31 | renderComponentContent: () => ({ |
| 29 | - default: () => NodeBindDataFieldNameEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA, | 32 | + default: () => GpsGeofencingFilterFieldsNameEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA, |
| 30 | }), | 33 | }), |
| 31 | }, | 34 | }, |
| 32 | { | 35 | { |
| 33 | - field: NodeBindDataFieldEnum.PERIMETER_KEY_NAME, | 36 | + field: GpsGeofencingFilterFieldsEnum.PERIMETER_KEY_NAME, |
| 34 | component: 'Input', | 37 | component: 'Input', |
| 35 | - label: NodeBindDataFieldNameEnum.PERIMETER_KEY_NAME, | ||
| 36 | - show: ({ model }) => model[NodeBindDataFieldEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 38 | + label: GpsGeofencingFilterFieldsNameEnum.PERIMETER_KEY_NAME, |
| 39 | + show: ({ model }) => | ||
| 40 | + model[GpsGeofencingFilterFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | ||
| 37 | }, | 41 | }, |
| 38 | { | 42 | { |
| 39 | - field: NodeBindDataFieldEnum.POLYGONS_DEFINITION, | 43 | + field: GpsGeofencingFilterFieldsEnum.POLYGONS_DEFINITION, |
| 40 | component: 'Input', | 44 | component: 'Input', |
| 41 | - label: NodeBindDataFieldNameEnum.POLYGONS_DEFINITION, | 45 | + label: GpsGeofencingFilterFieldsNameEnum.POLYGONS_DEFINITION, |
| 42 | helpMessage: | 46 | helpMessage: |
| 43 | 'Please, use the following format for manual definition of polygon: [[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]].', | 47 | 'Please, use the following format for manual definition of polygon: [[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]].', |
| 44 | show: ({ model }) => | 48 | show: ({ model }) => |
| 45 | - !model[NodeBindDataFieldEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA] && | ||
| 46 | - model[NodeBindDataFieldEnum.PERIMETER_TYPE] === PerimeterTypeEnum.POLYGON, | 49 | + !model[GpsGeofencingFilterFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA] && |
| 50 | + model[GpsGeofencingFilterFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.POLYGON, | ||
| 47 | }, | 51 | }, |
| 48 | { | 52 | { |
| 49 | - field: NodeBindDataFieldEnum.CENTER_LATITUDE, | 53 | + field: GpsGeofencingFilterFieldsEnum.CENTER_LATITUDE, |
| 50 | component: 'InputNumber', | 54 | component: 'InputNumber', |
| 51 | - label: NodeBindDataFieldNameEnum.CENTER_LATITUDE, | 55 | + label: GpsGeofencingFilterFieldsNameEnum.CENTER_LATITUDE, |
| 52 | colProps: { span: 12 }, | 56 | colProps: { span: 12 }, |
| 53 | show: ({ model }) => | 57 | show: ({ model }) => |
| 54 | - model[NodeBindDataFieldEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && | ||
| 55 | - !model[NodeBindDataFieldEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 58 | + model[GpsGeofencingFilterFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
| 59 | + !model[GpsGeofencingFilterFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | ||
| 56 | }, | 60 | }, |
| 57 | { | 61 | { |
| 58 | - field: NodeBindDataFieldEnum.CENTER_LONGITUDE, | 62 | + field: GpsGeofencingFilterFieldsEnum.CENTER_LONGITUDE, |
| 59 | component: 'InputNumber', | 63 | component: 'InputNumber', |
| 60 | - label: NodeBindDataFieldNameEnum.CENTER_LONGITUDE, | 64 | + label: GpsGeofencingFilterFieldsNameEnum.CENTER_LONGITUDE, |
| 61 | colProps: { span: 12 }, | 65 | colProps: { span: 12 }, |
| 62 | show: ({ model }) => | 66 | show: ({ model }) => |
| 63 | - model[NodeBindDataFieldEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && | ||
| 64 | - !model[NodeBindDataFieldEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 67 | + model[GpsGeofencingFilterFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
| 68 | + !model[GpsGeofencingFilterFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | ||
| 65 | }, | 69 | }, |
| 66 | { | 70 | { |
| 67 | - field: NodeBindDataFieldEnum.RANGE, | 71 | + field: GpsGeofencingFilterFieldsEnum.RANGE, |
| 68 | component: 'InputNumber', | 72 | component: 'InputNumber', |
| 69 | - label: NodeBindDataFieldNameEnum.RANGE, | 73 | + label: GpsGeofencingFilterFieldsNameEnum.RANGE, |
| 70 | colProps: { span: 12 }, | 74 | colProps: { span: 12 }, |
| 71 | show: ({ model }) => | 75 | show: ({ model }) => |
| 72 | - model[NodeBindDataFieldEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && | ||
| 73 | - !model[NodeBindDataFieldEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 76 | + model[GpsGeofencingFilterFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
| 77 | + !model[GpsGeofencingFilterFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | ||
| 74 | }, | 78 | }, |
| 75 | { | 79 | { |
| 76 | - field: NodeBindDataFieldEnum.RANGE_UNIT, | 80 | + field: GpsGeofencingFilterFieldsEnum.RANGE_UNIT, |
| 77 | component: 'Select', | 81 | component: 'Select', |
| 78 | - label: NodeBindDataFieldNameEnum.RANGE_UNIT, | 82 | + label: GpsGeofencingFilterFieldsNameEnum.RANGE_UNIT, |
| 79 | colProps: { span: 12 }, | 83 | colProps: { span: 12 }, |
| 80 | show: ({ model }) => | 84 | show: ({ model }) => |
| 81 | - model[NodeBindDataFieldEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && | ||
| 82 | - !model[NodeBindDataFieldEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | 85 | + model[GpsGeofencingFilterFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
| 86 | + !model[GpsGeofencingFilterFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], | ||
| 83 | componentProps: { | 87 | componentProps: { |
| 84 | options: Object.keys(RangeUtilEnum).map((value) => ({ | 88 | options: Object.keys(RangeUtilEnum).map((value) => ({ |
| 85 | label: RangeUtilNameEnum[value], | 89 | label: RangeUtilNameEnum[value], |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | ||
| 2 | -import { findDictItemByCode } from '/@/api/system/dict'; | 1 | +import { MessageTypesEnum, MessageTypesNameEnum } from '../../../enum/form'; |
| 2 | +import { MessageTypeFieldsEnum, MessageTypeFieldsNameEnum } from '../../../enum/formField/filter'; | ||
| 3 | import { FormSchema } from '/@/components/Form'; | 3 | import { FormSchema } from '/@/components/Form'; |
| 4 | -import { DictEnum } from '/@/enums/dictEnum'; | ||
| 5 | 4 | ||
| 6 | export const formSchemas: FormSchema[] = [ | 5 | export const formSchemas: FormSchema[] = [ |
| 7 | { | 6 | { |
| 8 | - field: NodeBindDataFieldEnum.MESSAGE_TYPES, | ||
| 9 | - component: 'ApiSelect', | ||
| 10 | - label: NodeBindDataFieldNameEnum.MESSAGE_TYPES, | 7 | + field: MessageTypeFieldsEnum.MESSAGE_TYPES, |
| 8 | + component: 'Select', | ||
| 9 | + label: MessageTypeFieldsNameEnum.MESSAGE_TYPES, | ||
| 11 | componentProps: { | 10 | componentProps: { |
| 12 | - api: findDictItemByCode, | ||
| 13 | - params: { | ||
| 14 | - dictCode: DictEnum.MESSAGE_TYPES_FILTER, | ||
| 15 | - }, | 11 | + options: Object.keys(MessageTypesEnum).map((value) => ({ |
| 12 | + label: MessageTypesNameEnum[value], | ||
| 13 | + value, | ||
| 14 | + })), | ||
| 16 | mode: 'multiple', | 15 | mode: 'multiple', |
| 17 | - labelField: 'itemText', | ||
| 18 | - valueField: 'itemValue', | 16 | + placeholder: `请选择${MessageTypeFieldsNameEnum.MESSAGE_TYPES}`, |
| 19 | getPopupContainer: () => document.body, | 17 | getPopupContainer: () => document.body, |
| 20 | }, | 18 | }, |
| 21 | }, | 19 | }, |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { |
| 2 | + OriginatorTypeFieldsEnum, | ||
| 3 | + OriginatorTypeFieldsNameEnum, | ||
| 4 | +} from '../../../enum/formField/filter'; | ||
| 2 | import { findDictItemByCode } from '/@/api/system/dict'; | 5 | import { findDictItemByCode } from '/@/api/system/dict'; |
| 3 | import { FormSchema } from '/@/components/Form'; | 6 | import { FormSchema } from '/@/components/Form'; |
| 4 | import { DictEnum } from '/@/enums/dictEnum'; | 7 | import { DictEnum } from '/@/enums/dictEnum'; |
| 5 | 8 | ||
| 6 | export const formSchemas: FormSchema[] = [ | 9 | export const formSchemas: FormSchema[] = [ |
| 7 | { | 10 | { |
| 8 | - field: NodeBindDataFieldEnum.ORIGINATOR_TYPES, | 11 | + field: OriginatorTypeFieldsEnum.ORIGINATOR_TYPES, |
| 9 | component: 'ApiSelect', | 12 | component: 'ApiSelect', |
| 10 | - label: NodeBindDataFieldNameEnum.ORIGINATOR_TYPES, | 13 | + label: OriginatorTypeFieldsNameEnum.ORIGINATOR_TYPES, |
| 11 | componentProps: { | 14 | componentProps: { |
| 12 | api: findDictItemByCode, | 15 | api: findDictItemByCode, |
| 13 | params: { | 16 | params: { |
| 1 | import { h } from 'vue'; | 1 | import { h } from 'vue'; |
| 2 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | ||
| 3 | import { FormSchema, useComponentRegister } from '/@/components/Form'; | 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
| 4 | import HelpMessage from './HelpMessage.vue'; | 3 | import HelpMessage from './HelpMessage.vue'; |
| 5 | import { JavascriptEditorWithTestModal } from '/@/views/rule/designer/src/components/JavaScriptFilterModal'; | 4 | import { JavascriptEditorWithTestModal } from '/@/views/rule/designer/src/components/JavaScriptFilterModal'; |
| 5 | +import { ScriptFieldsEnum, ScriptFieldsNameEnum } from '../../../enum/formField/filter'; | ||
| 6 | 6 | ||
| 7 | useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestModal); | 7 | useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestModal); |
| 8 | 8 | ||
| 9 | export const formSchemas: FormSchema[] = [ | 9 | export const formSchemas: FormSchema[] = [ |
| 10 | { | 10 | { |
| 11 | - field: NodeBindDataFieldEnum.JS_SCRIPT, | 11 | + field: ScriptFieldsEnum.JS_SCRIPT, |
| 12 | component: 'JavascriptEditorWithTestModal', | 12 | component: 'JavascriptEditorWithTestModal', |
| 13 | - label: NodeBindDataFieldNameEnum.JS_SCRIPT, | 13 | + label: ScriptFieldsNameEnum.JS_SCRIPT, |
| 14 | changeEvent: 'update:value', | 14 | changeEvent: 'update:value', |
| 15 | valueField: 'value', | 15 | valueField: 'value', |
| 16 | renderComponentContent: () => { | 16 | renderComponentContent: () => { |
| 1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | 1 | +import { SwitchFieldsEnum, SwitchFieldsNameEnum } from '../../../enum/formField/filter'; |
| 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; | 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
| 3 | import { JavascriptEditorWithTestModal } from '/@/views/rule/designer/src/components/JavaScriptFilterModal'; | 3 | import { JavascriptEditorWithTestModal } from '/@/views/rule/designer/src/components/JavaScriptFilterModal'; |
| 4 | 4 | ||
| @@ -6,9 +6,9 @@ useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestMo | @@ -6,9 +6,9 @@ useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestMo | ||
| 6 | 6 | ||
| 7 | export const formSchemas: FormSchema[] = [ | 7 | export const formSchemas: FormSchema[] = [ |
| 8 | { | 8 | { |
| 9 | - field: NodeBindDataFieldEnum.JS_SCRIPT, | 9 | + field: SwitchFieldsEnum.JS_SCRIPT, |
| 10 | component: 'JavascriptEditorWithTestModal', | 10 | component: 'JavascriptEditorWithTestModal', |
| 11 | - label: NodeBindDataFieldNameEnum.JS_SCRIPT, | 11 | + label: SwitchFieldsNameEnum.JS_SCRIPT, |
| 12 | changeEvent: 'update:value', | 12 | changeEvent: 'update:value', |
| 13 | valueField: 'value', | 13 | valueField: 'value', |
| 14 | componentProps: { | 14 | componentProps: { |
| @@ -2,6 +2,17 @@ import { RuleChainFieldsEnum, RuleChainFieldsNameEnum } from '../../../enum/form | @@ -2,6 +2,17 @@ import { RuleChainFieldsEnum, RuleChainFieldsNameEnum } from '../../../enum/form | ||
| 2 | import { getRuleChains } from '/@/api/ruleDesigner'; | 2 | import { getRuleChains } from '/@/api/ruleDesigner'; |
| 3 | import { FormSchema } from '/@/components/Form'; | 3 | import { FormSchema } from '/@/components/Form'; |
| 4 | 4 | ||
| 5 | +const fetch = async (params: Recordable) => { | ||
| 6 | + try { | ||
| 7 | + const result = await getRuleChains(params); | ||
| 8 | + const data = result.data.map((item) => ({ label: item.name, value: item.id.id })); | ||
| 9 | + return data; | ||
| 10 | + } catch (err) { | ||
| 11 | + console.error(err); | ||
| 12 | + return []; | ||
| 13 | + } | ||
| 14 | +}; | ||
| 15 | + | ||
| 5 | export const formSchemas: FormSchema[] = [ | 16 | export const formSchemas: FormSchema[] = [ |
| 6 | { | 17 | { |
| 7 | field: RuleChainFieldsEnum.RULE_CHAIN_ID, | 18 | field: RuleChainFieldsEnum.RULE_CHAIN_ID, |
| @@ -11,16 +22,13 @@ export const formSchemas: FormSchema[] = [ | @@ -11,16 +22,13 @@ export const formSchemas: FormSchema[] = [ | ||
| 11 | return { | 22 | return { |
| 12 | placeholder: '请选择所属产品', | 23 | placeholder: '请选择所属产品', |
| 13 | showSearch: true, | 24 | showSearch: true, |
| 14 | - resultField: 'data', | ||
| 15 | - labelField: 'name', | ||
| 16 | - valueField: 'id.id', | ||
| 17 | params: { | 25 | params: { |
| 18 | pageSize: 50, | 26 | pageSize: 50, |
| 19 | page: 0, | 27 | page: 0, |
| 20 | type: 'CORE', | 28 | type: 'CORE', |
| 21 | }, | 29 | }, |
| 22 | - api: getRuleChains, | ||
| 23 | - searchApi: getRuleChains, | 30 | + api: fetch, |
| 31 | + searchApi: fetch, | ||
| 24 | getPopupContainer: () => document.body, | 32 | getPopupContainer: () => document.body, |
| 25 | }; | 33 | }; |
| 26 | }, | 34 | }, |
| @@ -28,5 +28,7 @@ export const formSchemas: FormSchema[] = [ | @@ -28,5 +28,7 @@ export const formSchemas: FormSchema[] = [ | ||
| 28 | component: 'RelationsQuery', | 28 | component: 'RelationsQuery', |
| 29 | label: ChangeOriginatorFieldsNameEnum.RELATIONS_QUERY, | 29 | label: ChangeOriginatorFieldsNameEnum.RELATIONS_QUERY, |
| 30 | slot: ChangeOriginatorFieldsEnum.RELATIONS_QUERY, | 30 | slot: ChangeOriginatorFieldsEnum.RELATIONS_QUERY, |
| 31 | + ifShow: ({ model }) => | ||
| 32 | + model[ChangeOriginatorFieldsEnum.ORIGINATOR_SOURCE] === OriginatorSourceEnum.RELATED, | ||
| 31 | }, | 33 | }, |
| 32 | ]; | 34 | ]; |
| 1 | -<script lang="ts" setup></script> | 1 | +<script lang="ts" setup> |
| 2 | + import { EdgeBindDataFieldEnum, EdgeBindDataFieldNameEnum } from '../../../enum/node'; | ||
| 3 | + import { ConnectionModalDefineExposeType } from '../../../types'; | ||
| 4 | + import { NodeData } from '../../../types/node'; | ||
| 5 | + import { BasicForm, FormSchema, useForm } from '/@/components/Form'; | ||
| 6 | + | ||
| 7 | + defineProps<{ | ||
| 8 | + config: NodeData; | ||
| 9 | + }>(); | ||
| 10 | + | ||
| 11 | + const getSchemas = (): FormSchema[] => { | ||
| 12 | + return [ | ||
| 13 | + { | ||
| 14 | + field: EdgeBindDataFieldEnum.TYPE, | ||
| 15 | + component: 'Select', | ||
| 16 | + label: EdgeBindDataFieldNameEnum.TYPE, | ||
| 17 | + componentProps: { | ||
| 18 | + mode: 'tags', | ||
| 19 | + open: false, | ||
| 20 | + getPopupContainer: () => document.body, | ||
| 21 | + placeholder: '请输入链接标签', | ||
| 22 | + }, | ||
| 23 | + }, | ||
| 24 | + ]; | ||
| 25 | + }; | ||
| 26 | + | ||
| 27 | + const [register, { setFieldsValue, getFieldsValue }] = useForm({ | ||
| 28 | + showActionButtonGroup: false, | ||
| 29 | + schemas: getSchemas(), | ||
| 30 | + }); | ||
| 31 | + | ||
| 32 | + const getValue: ConnectionModalDefineExposeType['getFieldsValue'] = async () => { | ||
| 33 | + return getFieldsValue(); | ||
| 34 | + }; | ||
| 35 | + | ||
| 36 | + const setValue: ConnectionModalDefineExposeType['setFieldsValue'] = async (value) => { | ||
| 37 | + const { type } = value || {}; | ||
| 38 | + setFieldsValue(type); | ||
| 39 | + }; | ||
| 40 | + | ||
| 41 | + defineExpose({ | ||
| 42 | + getFieldsValue: getValue, | ||
| 43 | + setFieldsValue: setValue, | ||
| 44 | + } as ConnectionModalDefineExposeType); | ||
| 45 | +</script> | ||
| 2 | 46 | ||
| 3 | <template> | 47 | <template> |
| 4 | - <div>自定义</div> | 48 | + <BasicForm @register="register" /> |
| 5 | </template> | 49 | </template> |
| @@ -16,8 +16,8 @@ export const TopFormSchemas: FormSchema[] = [ | @@ -16,8 +16,8 @@ export const TopFormSchemas: FormSchema[] = [ | ||
| 16 | }, | 16 | }, |
| 17 | { | 17 | { |
| 18 | field: NodeBindDataFieldEnum.DEBUG_MODE, | 18 | field: NodeBindDataFieldEnum.DEBUG_MODE, |
| 19 | - component: 'Checkbox', | ||
| 20 | - label: '', | 19 | + component: 'Switch', |
| 20 | + label: NodeBindDataFieldNameEnum.DEBUG_MODE, | ||
| 21 | colProps: { | 21 | colProps: { |
| 22 | offset: 2, | 22 | offset: 2, |
| 23 | span: 6, | 23 | span: 6, |
| 1 | <script lang="ts" setup> | 1 | <script lang="ts" setup> |
| 2 | import { Card, Select, Tag, Form, Button } from 'ant-design-vue'; | 2 | import { Card, Select, Tag, Form, Button } from 'ant-design-vue'; |
| 3 | import { ref, toRaw, unref, watch } from 'vue'; | 3 | import { ref, toRaw, unref, watch } from 'vue'; |
| 4 | - import { MessageTypesFilterEnum, MessageTypesFilterNameEnum } from '../../../enum/form'; | 4 | + import { MessageTypesEnum, MessageTypesNameEnum } from '../../../enum/form'; |
| 5 | import { JSONEditor } from '/@/components/CodeEditor'; | 5 | import { JSONEditor } from '/@/components/CodeEditor'; |
| 6 | import { Icon } from '/@/components/Icon'; | 6 | import { Icon } from '/@/components/Icon'; |
| 7 | import { JavaScriptFunctionEditor } from '/@/components/Form'; | 7 | import { JavaScriptFunctionEditor } from '/@/components/Form'; |
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | interface Value { | 12 | interface Value { |
| 13 | msg: Recordable; | 13 | msg: Recordable; |
| 14 | metadata: Recordable; | 14 | metadata: Recordable; |
| 15 | - msgType: MessageTypesFilterEnum; | 15 | + msgType: MessageTypesEnum; |
| 16 | javascriptFunction: string; | 16 | javascriptFunction: string; |
| 17 | } | 17 | } |
| 18 | 18 | ||
| @@ -35,9 +35,9 @@ | @@ -35,9 +35,9 @@ | ||
| 35 | (eventName: 'save', value: Value): void; | 35 | (eventName: 'save', value: Value): void; |
| 36 | }>(); | 36 | }>(); |
| 37 | 37 | ||
| 38 | - const messageType = ref(MessageTypesFilterEnum.POST_TELEMETRY); | ||
| 39 | - const messageTypeOptions = Object.keys(MessageTypesFilterEnum).map((value) => ({ | ||
| 40 | - label: MessageTypesFilterNameEnum[value], | 38 | + const messageType = ref(MessageTypesEnum.POST_TELEMETRY_REQUEST); |
| 39 | + const messageTypeOptions = Object.keys(MessageTypesEnum).map((value) => ({ | ||
| 40 | + label: MessageTypesNameEnum[value], | ||
| 41 | value, | 41 | value, |
| 42 | })); | 42 | })); |
| 43 | 43 |
| 1 | <script lang="ts" setup> | 1 | <script lang="ts" setup> |
| 2 | import { BasicModal, useModalInner } from '/@/components/Modal'; | 2 | import { BasicModal, useModalInner } from '/@/components/Modal'; |
| 3 | import JavaScriptFilterTest from './JavaScriptFilterTest.vue'; | 3 | import JavaScriptFilterTest from './JavaScriptFilterTest.vue'; |
| 4 | - import { MessageTypesFilterEnum } from '../../../enum/form'; | 4 | + import { MessageTypesEnum } from '../../../enum/form'; |
| 5 | import { ref } from 'vue'; | 5 | import { ref } from 'vue'; |
| 6 | import { JavaScriptFunctionEditor } from '/@/components/Form'; | 6 | import { JavaScriptFunctionEditor } from '/@/components/Form'; |
| 7 | 7 | ||
| @@ -15,7 +15,7 @@ | @@ -15,7 +15,7 @@ | ||
| 15 | interface SaveValueType { | 15 | interface SaveValueType { |
| 16 | msg: Recordable; | 16 | msg: Recordable; |
| 17 | metadata: Recordable; | 17 | metadata: Recordable; |
| 18 | - msgType: MessageTypesFilterEnum; | 18 | + msgType: MessageTypesEnum; |
| 19 | javascriptFunction: string; | 19 | javascriptFunction: string; |
| 20 | } | 20 | } |
| 21 | 21 |
| @@ -56,8 +56,8 @@ | @@ -56,8 +56,8 @@ | ||
| 56 | placement="left" | 56 | placement="left" |
| 57 | color="#fff" | 57 | color="#fff" |
| 58 | trigger="hover" | 58 | trigger="hover" |
| 59 | - :mouse-enter-delay="0.3" | ||
| 60 | - overlay-class-name="!max-w-72" | 59 | + :mouse-enter-delay="0.5" |
| 60 | + overlay-class-name="!max-w-90" | ||
| 61 | > | 61 | > |
| 62 | <template #title> | 62 | <template #title> |
| 63 | <section class="text-dark-900"> | 63 | <section class="text-dark-900"> |
| @@ -42,6 +42,7 @@ export interface UserInfo { | @@ -42,6 +42,7 @@ export interface UserInfo { | ||
| 42 | plainRoles?: PlainRoleInfo[]; | 42 | plainRoles?: PlainRoleInfo[]; |
| 43 | phoneNumber?: string; | 43 | phoneNumber?: string; |
| 44 | email?: string; | 44 | email?: string; |
| 45 | + tenantId?: string; | ||
| 45 | } | 46 | } |
| 46 | 47 | ||
| 47 | export interface BeforeMiniState { | 48 | export interface BeforeMiniState { |