Showing
52 changed files
with
762 additions
and
433 deletions
1 | -import { DeviceInfoItemType, DeviceTypeItem } from './model'; | |
1 | +import { DeviceInfoItemType, DeviceTypeItem, PageParams } from './model'; | |
2 | 2 | import { TBPaginationResult } from '/#/axios'; |
3 | 3 | import { defHttp } from '/@/utils/http/axios'; |
4 | 4 | |
... | ... | @@ -8,6 +8,17 @@ enum Api { |
8 | 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 | 22 | export const getDeviceInfos = () => { |
12 | 23 | return defHttp.get<TBPaginationResult<DeviceInfoItemType>>( |
13 | 24 | { |
... | ... | @@ -35,3 +46,99 @@ export const getTenantQueue = (params: Recordable) => { |
35 | 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 | +}; | ... | ... |
1 | +import { RuleChainPaginationItemType } from './model/type'; | |
2 | +import { TBPaginationResult } from '/#/axios'; | |
1 | 3 | import { defHttp } from '/@/utils/http/axios'; |
2 | 4 | import { RuleChainType } from '/@/views/rule/designer/types/ruleNode'; |
3 | 5 | |
... | ... | @@ -26,7 +28,7 @@ export const saveRuleChainData = (data: RuleChainType) => { |
26 | 28 | }; |
27 | 29 | |
28 | 30 | export const getRuleChains = (params: Recordable) => { |
29 | - return defHttp.get( | |
31 | + return defHttp.get<TBPaginationResult<RuleChainPaginationItemType>>( | |
30 | 32 | { |
31 | 33 | url: Api.GET_RULE_CHAINES, |
32 | 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 | 28 | labelField?: string; |
29 | 29 | valueField?: string; |
30 | 30 | immediate?: boolean; |
31 | + searchField?: string; | |
31 | 32 | queryEmptyDataAgin?: boolean; |
32 | 33 | onChangeHook?: ({ options }: OnChangeHookParams) => void; |
33 | 34 | dropdownVisibleChangeHook?: ({ options }: OnChangeHookParams) => void; |
... | ... | @@ -36,6 +37,7 @@ |
36 | 37 | resultField: '', |
37 | 38 | labelField: 'label', |
38 | 39 | valueField: 'value', |
40 | + searchField: 'text', | |
39 | 41 | immediate: true, |
40 | 42 | queryEmptyDataAgin: true, |
41 | 43 | } |
... | ... | @@ -55,16 +57,26 @@ |
55 | 57 | return unref(options).reduce((prev, next: Recordable) => { |
56 | 58 | if (next) { |
57 | 59 | const value = get(next, valueField); |
60 | + const label = get(next, labelField); | |
58 | 61 | prev.push({ |
59 | - label: next[labelField], | |
60 | - value: numberToString ? `${value}` : value, | |
61 | 62 | ...omit(next, [labelField, valueField]), |
63 | + label, | |
64 | + value: numberToString ? `${value}` : value, | |
62 | 65 | }); |
63 | 66 | } |
64 | 67 | return prev; |
65 | 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 | 80 | watchEffect(() => { |
69 | 81 | props.immediate && fetch(); |
70 | 82 | }); |
... | ... | @@ -125,7 +137,7 @@ |
125 | 137 | |
126 | 138 | const debounceSearchFunction = useDebounceFn(handleSearch, 300); |
127 | 139 | async function handleSearch(params?: string) { |
128 | - let { searchApi, api } = props; | |
140 | + let { searchApi, api, searchField } = props; | |
129 | 141 | if (!searchApi || !isFunction(searchApi)) { |
130 | 142 | if (!api || !isFunction(api)) return; |
131 | 143 | searchApi = api; |
... | ... | @@ -133,7 +145,7 @@ |
133 | 145 | options.value = []; |
134 | 146 | try { |
135 | 147 | loading.value = true; |
136 | - const res = await searchApi({ ...props.params, text: params }); | |
148 | + const res = await searchApi({ ...props.params, [searchField]: params }); | |
137 | 149 | if (Array.isArray(res)) { |
138 | 150 | options.value = res; |
139 | 151 | emitChange(); |
... | ... | @@ -154,8 +166,7 @@ |
154 | 166 | <template> |
155 | 167 | <Select |
156 | 168 | @dropdownVisibleChange="handleFetch" |
157 | - v-bind="attrs" | |
158 | - show-search | |
169 | + v-bind="getBindProps" | |
159 | 170 | @change="handleChange" |
160 | 171 | :options="getOptions" |
161 | 172 | @search="debounceSearchFunction" | ... | ... |
... | ... | @@ -45,7 +45,7 @@ export enum EntityTypeNameEnum { |
45 | 45 | CUSTOMER = '客户', |
46 | 46 | USER = '用户', |
47 | 47 | DASHBOARD = '仪表板', |
48 | - EDGE = 'Edge', | |
48 | + EDGE = '边缘', | |
49 | 49 | } |
50 | 50 | |
51 | 51 | /** |
... | ... | @@ -56,30 +56,11 @@ export enum PerimeterTypeEnum { |
56 | 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 | 64 | ACTIVITY_EVENT = 'ACTIVITY_EVENT', |
84 | 65 | INACTIVITY_EVENT = 'INACTIVITY_EVENT', |
85 | 66 | CONNECT_EVENT = 'CONNECT_EVENT', |
... | ... | @@ -100,11 +81,11 @@ export enum MessageTypesFilterEnum { |
100 | 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 | 89 | ACTIVITY_EVENT = 'Activity Event', |
109 | 90 | INACTIVITY_EVENT = 'Inactivity Event', |
110 | 91 | CONNECT_EVENT = 'Connect Event', |
... | ... | @@ -124,6 +105,24 @@ export enum MessageTypesFilterNameEnum { |
124 | 105 | RPC_TIMEOUT = 'RPC Timeout', |
125 | 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 | 127 | // Enrichment Customer details |
129 | 128 | export enum DetailsListEnum { | ... | ... |
... | ... | @@ -85,7 +85,7 @@ export enum DelayDeprecatedFieldsEnum { |
85 | 85 | export enum DelayDeprecatedFieldsNameEnum { |
86 | 86 | USE_METADATA_PERIOD_IN_SECONDS_PATTERNS = 'Use period in seconds pattern', |
87 | 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 | 89 | MAX_PENDING_MSGS = 'Maximum pending messages', |
90 | 90 | } |
91 | 91 | |
... | ... | @@ -131,8 +131,8 @@ export enum GeneratorFieldsNameEnum { |
131 | 131 | MSG_COUNT = 'Message count(0 - unlimited)', |
132 | 132 | PERIOD_IN_SECONDS = 'Period in seconds', |
133 | 133 | JS_SCRIPT = 'Generate', |
134 | - // ORIGINATOR_ID = 'Originator', | |
135 | - ORIGINATOR_TYPE = 'Originator', | |
134 | + // ORIGINATOR_ID = '资产', | |
135 | + ORIGINATOR_TYPE = '类型', | |
136 | 136 | } |
137 | 137 | |
138 | 138 | // Gps geofencing events | ... | ... |
... | ... | @@ -71,6 +71,7 @@ export enum OriginatorFieldsNameEnum { |
71 | 71 | |
72 | 72 | // Enrichment originator telemetry |
73 | 73 | export enum OriginatorTelemetryFieldsEnum { |
74 | + LATEST_TS_KEY_NAMES = 'latestTsKeyNames', | |
74 | 75 | AGGREGATION = 'aggregation', |
75 | 76 | FETCH_MODE = 'fetchMode', |
76 | 77 | ORDER_BY = 'orderBy', |
... | ... | @@ -85,6 +86,7 @@ export enum OriginatorTelemetryFieldsEnum { |
85 | 86 | } |
86 | 87 | |
87 | 88 | export enum OriginatorTelemetryFieldsNameEnum { |
89 | + LATEST_TS_KEY_NAMES = 'Latest timeseries', | |
88 | 90 | AGGREGATION = '数据聚合功能', |
89 | 91 | FETCH_MODE = 'Fetch Mode', |
90 | 92 | ORDER_BY = 'Order by', |
... | ... | @@ -102,11 +104,13 @@ export enum OriginatorTelemetryFieldsNameEnum { |
102 | 104 | export enum RelatedAttributesFieldsEnum { |
103 | 105 | RELATIONS_QUERY = 'relationsQuery', |
104 | 106 | ATTR_MAPPING = 'attrMapping', |
107 | + TELEMETRY = 'telemetry', | |
105 | 108 | } |
106 | 109 | |
107 | -export enum RelatedAttributesFieldNameEnum { | |
110 | +export enum RelatedAttributesFieldsNameEnum { | |
108 | 111 | RELATIONS_QUERY = 'Relations query', |
109 | 112 | ATTR_MAPPING = 'Attributes mapping', |
113 | + TELEMETRY = 'Latest telemetry', | |
110 | 114 | } |
111 | 115 | |
112 | 116 | // Enrichment Related device Attributes |
... | ... | @@ -144,6 +148,17 @@ export enum RelatedDeviceAttributeFieldsNameEnum { |
144 | 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 | 162 | // Enrichment Tenant details |
148 | 163 | export enum TenantDetailsFieldsEnum { |
149 | 164 | DETAILS_LIST = 'detailsList', |
... | ... | @@ -154,29 +169,3 @@ export enum TenantDetailsFieldsNameEnum { |
154 | 169 | DETAILS_LIST = 'Add selected details to message metadata', |
155 | 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 | 244 | |
245 | 245 | export enum RestApiCallFieldsNameEnum { |
246 | 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 | 265 | TYPE = 'Credentials type', |
266 | 266 | PASSWORD = 'Password', | ... | ... |
1 | 1 | // Filter Check Alarm Status Fields |
2 | -export enum FilterCheckAlarmStatusFieldEnum { | |
2 | +export enum CheckAlarmStatusFieldEnum { | |
3 | 3 | ALARM_STATUS_LIST = 'alarmStatusList', |
4 | 4 | } |
5 | 5 | |
6 | -export enum FilterCheckAlarmStatusFieldNameEnum { | |
6 | +export enum CheckAlarmStatusFieldNameEnum { | |
7 | 7 | ALARM_STATUS_LIST = 'Alarm status filter', |
8 | 8 | } |
9 | 9 | |
... | ... | @@ -90,24 +90,11 @@ export enum ScriptFieldsNameEnum { |
90 | 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 | 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 | 3 | export enum FetchNodeComFlagTypeENum { |
9 | 4 | CONNECTION_MODAL = 'CONNECTION_MODAL', |
... | ... | @@ -20,12 +15,8 @@ export enum EdgeBindDataFieldNameEnum { |
20 | 15 | |
21 | 16 | export const NodeBindDataFieldEnum = { |
22 | 17 | ...CommonFields, |
23 | - ...FilterCategoryFormFields, | |
24 | - ...EnrichmentCategoryFormFields, | |
25 | 18 | }; |
26 | 19 | |
27 | 20 | export const NodeBindDataFieldNameEnum = { |
28 | 21 | ...CommonFieldsName, |
29 | - ...FilterCategoryFormFieldsName, | |
30 | - ...EnrichmentCategoryFormFieldsName, | |
31 | 22 | }; | ... | ... |
... | ... | @@ -36,6 +36,7 @@ export const formSchemas: FormSchema[] = [ |
36 | 36 | label: EntityTypeNameEnum[value], |
37 | 37 | value, |
38 | 38 | })), |
39 | + getPopupContainer: () => document.body, | |
39 | 40 | placeholder: `请选择${CreateRelationFieldsNameEnum.ENTITY_TYPE}`, |
40 | 41 | }, |
41 | 42 | }, |
... | ... | @@ -49,7 +50,7 @@ export const formSchemas: FormSchema[] = [ |
49 | 50 | 'Hint: use ${metadataKey} for value from metadata, $[messageKey] for value from message body', |
50 | 51 | ], |
51 | 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 | 84 | { |
84 | 85 | field: CreateRelationFieldsEnum.CREATE_ENTITY_IF_NOT_EXISTS, |
85 | 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 | 89 | show: ({ model }) => { |
89 | 90 | const type = model[CreateRelationFieldsEnum.ENTITY_TYPE]; |
90 | 91 | return [EntityTypeEnum.ASSET, EntityTypeEnum.DEVICE, EntityTypeEnum.CUSTOMER].includes(type); |
91 | 92 | }, |
92 | 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 | 98 | field: CreateRelationFieldsEnum.REMOVE_CURRENT_RELATIONS, |
98 | 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 | 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 | 107 | field: CreateRelationFieldsEnum.CHANGE_ORIGINATOR_TO_RELATED_ENTITY, |
108 | 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 | 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 | 19 | component: 'Input', |
20 | 20 | label: DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS_PATTERN, |
21 | 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 | 23 | componentProps: { |
24 | 24 | min: 0, |
25 | 25 | placeholder: `请输入${DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS_PATTERN}`, |
... | ... | @@ -30,7 +30,8 @@ export const formSchemas: FormSchema[] = [ |
30 | 30 | component: 'InputNumber', |
31 | 31 | label: DelayDeprecatedFieldsNameEnum.PERIOD_IN_SECONDS, |
32 | 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 | 35 | componentProps: { |
35 | 36 | min: 0, |
36 | 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 | 7 | import { |
3 | 8 | DeleteRelationFieldsEnum, |
4 | 9 | DeleteRelationFieldsNameEnum, |
... | ... | @@ -20,7 +25,6 @@ export const formSchemas: FormSchema[] = [ |
20 | 25 | component: 'Select', |
21 | 26 | label: DeleteRelationFieldsNameEnum.DIRECTION, |
22 | 27 | required: true, |
23 | - colProps: { span: 12 }, | |
24 | 28 | show: ({ model }) => model[DeleteRelationFieldsEnum.DELETE_FOR_SINGLE_ENTITY], |
25 | 29 | componentProps: { |
26 | 30 | options: Object.keys(DirectionEnum).map((value) => ({ |
... | ... | @@ -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 | 54 | field: DeleteRelationFieldsEnum.ENTITY_NAME_PATTERN, |
36 | 55 | component: 'Input', |
37 | 56 | label: DeleteRelationFieldsNameEnum.ENTITY_NAME_PATTERN, | ... | ... |
1 | 1 | import { EntityTypeEnum, EntityTypeNameEnum } from '../../../enum/form'; |
2 | 2 | import { GeneratorFieldsEnum, GeneratorFieldsNameEnum } from '../../../enum/formField/action'; |
3 | 3 | import { JavascriptEditorWithTestModal } from '../../../src/components/JavaScriptFilterModal'; |
4 | +import { getEntityIdSelect } from '../../Filter/CheckRelation/create.config'; | |
4 | 5 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
5 | 6 | |
6 | 7 | useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestModal); |
... | ... | @@ -37,13 +38,18 @@ export const formSchemas: FormSchema[] = [ |
37 | 38 | value, |
38 | 39 | })), |
39 | 40 | placeholder: `请选择${GeneratorFieldsNameEnum.ORIGINATOR_TYPE}`, |
41 | + getPopupContainer: () => document.body, | |
40 | 42 | }, |
41 | 43 | }, |
42 | 44 | { |
43 | 45 | field: GeneratorFieldsEnum.ORIGINATOR_ID, |
44 | - component: 'Select', | |
45 | - label: GeneratorFieldsNameEnum.ORIGINATOR_TYPE, | |
46 | + component: 'ApiSearchSelect', | |
47 | + label: ' ', | |
46 | 48 | colProps: { span: 16 }, |
49 | + componentProps: ({ formModel }) => { | |
50 | + const type = formModel[GeneratorFieldsEnum.ORIGINATOR_TYPE]; | |
51 | + return getEntityIdSelect(type); | |
52 | + }, | |
47 | 53 | }, |
48 | 54 | { |
49 | 55 | field: GeneratorFieldsEnum.JS_SCRIPT, | ... | ... |
... | ... | @@ -47,7 +47,7 @@ export const formSchemas: FormSchema[] = [ |
47 | 47 | component: 'Input', |
48 | 48 | label: GpsGeofencingEventsFieldsNameEnum.PERIMETER_KEY_NAME, |
49 | 49 | required: true, |
50 | - show: ({ model }) => | |
50 | + ifShow: ({ model }) => | |
51 | 51 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.POLYGON && |
52 | 52 | model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
53 | 53 | componentProps: { |
... | ... | @@ -61,7 +61,7 @@ export const formSchemas: FormSchema[] = [ |
61 | 61 | helpMessage: |
62 | 62 | 'Please, use the following format for manual definition of polygon: [[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]].', |
63 | 63 | required: true, |
64 | - show: ({ model }) => | |
64 | + ifShow: ({ model }) => | |
65 | 65 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.POLYGON && |
66 | 66 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
67 | 67 | componentProps: { |
... | ... | @@ -74,7 +74,7 @@ export const formSchemas: FormSchema[] = [ |
74 | 74 | label: GpsGeofencingEventsFieldsNameEnum.CENTER_LATITUDE, |
75 | 75 | colProps: { span: 12 }, |
76 | 76 | required: true, |
77 | - show: ({ model }) => | |
77 | + ifShow: ({ model }) => | |
78 | 78 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
79 | 79 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
80 | 80 | componentProps: { |
... | ... | @@ -86,7 +86,7 @@ export const formSchemas: FormSchema[] = [ |
86 | 86 | component: 'InputNumber', |
87 | 87 | label: GpsGeofencingEventsFieldsNameEnum.CENTER_LONGITUDE, |
88 | 88 | colProps: { span: 12 }, |
89 | - show: ({ model }) => | |
89 | + ifShow: ({ model }) => | |
90 | 90 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
91 | 91 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
92 | 92 | componentProps: { |
... | ... | @@ -99,7 +99,7 @@ export const formSchemas: FormSchema[] = [ |
99 | 99 | label: GpsGeofencingEventsFieldsNameEnum.RANGE, |
100 | 100 | colProps: { span: 12 }, |
101 | 101 | required: true, |
102 | - show: ({ model }) => | |
102 | + ifShow: ({ model }) => | |
103 | 103 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
104 | 104 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
105 | 105 | componentProps: { |
... | ... | @@ -112,7 +112,7 @@ export const formSchemas: FormSchema[] = [ |
112 | 112 | label: GpsGeofencingEventsFieldsNameEnum.RANGE_UNIT, |
113 | 113 | colProps: { span: 12 }, |
114 | 114 | required: true, |
115 | - show: ({ model }) => | |
115 | + ifShow: ({ model }) => | |
116 | 116 | model[GpsGeofencingEventsFieldsEnum.PERIMETER_TYPE] === PerimeterTypeEnum.CIRCLE && |
117 | 117 | !model[GpsGeofencingEventsFieldsEnum.FETCH_PERIMETER_INFO_FROM_MESSAGE_METADATA], |
118 | 118 | componentProps: { | ... | ... |
... | ... | @@ -21,6 +21,7 @@ export const formSchemas: FormSchema[] = [ |
21 | 21 | field: SaveAttributesFieldsEnum.NOTIFY_DEVICE, |
22 | 22 | component: 'Checkbox', |
23 | 23 | label: SaveAttributesFieldsNameEnum.NOTIFY_DEVICE, |
24 | + ifShow: ({ model }) => model[SaveAttributesFieldsEnum.SCOPE] === ScopeEnum.SHARED_SCOPE, | |
24 | 25 | renderComponentContent: () => ({ |
25 | 26 | default: () => |
26 | 27 | 'If the message arrives from the device, we will push it back to the device by default.', | ... | ... |
1 | +import { h } from 'vue'; | |
1 | 2 | import { SaveEventFieldsEnum, SaveEventFieldsNameEnum } from '../../../enum/formField/action'; |
2 | 3 | import { FormSchema } from '/@/components/Form'; |
3 | 4 | |
4 | 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 | 18 | field: SaveEventFieldsEnum.CONFIGURATION, |
7 | 19 | component: 'JSONEditor', |
8 | 20 | label: SaveEventFieldsNameEnum.CONFIGURATION, | ... | ... |
1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | |
1 | +import { | |
2 | + CalculateDeltaFieldsEnum, | |
3 | + CalculateDeltaFieldsNameEnum, | |
4 | +} from '../../../enum/formField/enrichment'; | |
2 | 5 | import { FormSchema } from '/@/components/Form'; |
3 | 6 | |
4 | 7 | export const formSchemas: FormSchema[] = [ |
5 | 8 | { |
6 | - field: NodeBindDataFieldEnum.INPUT_VALUE_KEY, | |
9 | + field: CalculateDeltaFieldsEnum.INPUT_VALUE_KEY, | |
7 | 10 | component: 'Input', |
8 | - label: NodeBindDataFieldNameEnum.INPUT_VALUE_KEY, | |
11 | + label: CalculateDeltaFieldsNameEnum.INPUT_VALUE_KEY, | |
9 | 12 | required: true, |
10 | 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 | 20 | component: 'Input', |
15 | - label: NodeBindDataFieldNameEnum.OUTPUT_VALUE_KEY, | |
21 | + label: CalculateDeltaFieldsNameEnum.OUTPUT_VALUE_KEY, | |
16 | 22 | required: true, |
17 | 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 | 30 | component: 'InputNumber', |
22 | - label: NodeBindDataFieldNameEnum.ROUND, | |
31 | + label: CalculateDeltaFieldsNameEnum.ROUND, | |
23 | 32 | colProps: { span: 8 }, |
24 | 33 | componentProps: { |
25 | 34 | step: 1, |
26 | 35 | max: 15, |
36 | + placeholder: `请输入${CalculateDeltaFieldsNameEnum.ROUND}`, | |
27 | 37 | }, |
28 | 38 | }, |
29 | 39 | { |
30 | - field: NodeBindDataFieldEnum.USE_CACHE, | |
40 | + field: CalculateDeltaFieldsEnum.USE_CACHE, | |
31 | 41 | component: 'Checkbox', |
32 | 42 | label: '', |
33 | 43 | renderComponentContent: () => { |
34 | 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 | 51 | component: 'Checkbox', |
42 | 52 | label: '', |
43 | 53 | renderComponentContent: () => { |
44 | 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 | 61 | component: 'Checkbox', |
52 | 62 | label: '', |
53 | 63 | renderComponentContent: () => { |
54 | 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 | 71 | component: 'Input', |
62 | - label: NodeBindDataFieldNameEnum.PERIOD_VALUE_KEY, | |
72 | + label: CalculateDeltaFieldsNameEnum.PERIOD_VALUE_KEY, | |
63 | 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 | 5 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
3 | 6 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
4 | 7 | |
... | ... | @@ -6,20 +9,20 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); |
6 | 9 | |
7 | 10 | export const formSchemas: FormSchema[] = [ |
8 | 11 | { |
9 | - field: NodeBindDataFieldEnum.TELEMETRY, | |
12 | + field: CustomerAttributesFieldsEnum.TELEMETRY, | |
10 | 13 | component: 'Checkbox', |
11 | 14 | label: '', |
12 | 15 | renderComponentContent: () => { |
13 | 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 | 23 | component: 'AttributeConfiguration', |
21 | - label: NodeBindDataFieldNameEnum.ATTR_MAPING, | |
22 | - slot: NodeBindDataFieldEnum.ATTR_MAPING, | |
24 | + label: CustomerAttributesFieldsNameEnum.ATTR_MAPING, | |
25 | + slot: CustomerAttributesFieldsEnum.ATTR_MAPING, | |
23 | 26 | valueField: 'value', |
24 | 27 | changeEvent: 'update:value', |
25 | 28 | }, | ... | ... |
1 | 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 | 6 | import { FormSchema } from '/@/components/Form'; |
4 | 7 | |
5 | 8 | export const formSchemas: FormSchema[] = [ |
6 | 9 | { |
7 | - field: NodeBindDataFieldEnum.DETAILS_LIST, | |
10 | + field: CustomerDetailsFieldsEnum.DETAILS_LIST, | |
8 | 11 | component: 'Select', |
9 | - label: NodeBindDataFieldNameEnum.DETAILS_LIST, | |
12 | + label: CustomerDetailsFieldsNameEnum.DETAILS_LIST, | |
10 | 13 | componentProps: { |
11 | 14 | mode: 'multiple', |
12 | 15 | options: Object.keys(DetailsListEnum).map((item) => ({ |
13 | 16 | label: DetailsListNameEnum[item], |
14 | 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 | 24 | component: 'Checkbox', |
22 | 25 | label: '', |
23 | 26 | renderComponentContent: () => { |
24 | 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 | 5 | import { FormSchema } from '/@/components/Form'; |
3 | 6 | |
4 | 7 | export const formSchemas: FormSchema[] = [ |
5 | 8 | { |
6 | - field: NodeBindDataFieldEnum.TELL_FAILURE_IF_ABSENT, | |
9 | + field: OriginatorAttributesEnum.TELL_FAILURE_IF_ABSENT, | |
7 | 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 | 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 | 19 | component: 'Select', |
19 | - label: NodeBindDataFieldNameEnum.CLIENT_ATTRIBUTE_NAMES, | |
20 | + label: OriginatorAttributesNameEnum.CLIENT_ATTRIBUTE_NAMES, | |
20 | 21 | helpMessage: [ |
21 | 22 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, |
22 | 23 | ], |
23 | 24 | componentProps: { |
24 | 25 | mode: 'tags', |
25 | 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 | 32 | component: 'Select', |
31 | - label: NodeBindDataFieldNameEnum.SHARED_ATTRIBUTE_NAMES, | |
33 | + label: OriginatorAttributesNameEnum.SHARED_ATTRIBUTE_NAMES, | |
32 | 34 | helpMessage: [ |
33 | 35 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, |
34 | 36 | ], |
35 | 37 | componentProps: { |
36 | 38 | mode: 'tags', |
37 | 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 | 45 | component: 'Select', |
43 | - label: NodeBindDataFieldNameEnum.SERVER_ATTRIBUTE_NAMES, | |
46 | + label: OriginatorAttributesNameEnum.SERVER_ATTRIBUTE_NAMES, | |
44 | 47 | helpMessage: [ |
45 | 48 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, |
46 | 49 | ], |
47 | 50 | componentProps: { |
48 | 51 | mode: 'tags', |
49 | 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 | 58 | component: 'Select', |
55 | - label: NodeBindDataFieldNameEnum.LATEST_TS_KEY_NAMES, | |
59 | + label: OriginatorAttributesNameEnum.LATEST_TS_KEY_NAMES, | |
56 | 60 | helpMessage: [ |
57 | 61 | `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`, |
58 | 62 | ], |
59 | 63 | componentProps: { |
60 | 64 | mode: 'tags', |
61 | 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 | 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 | 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 | 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
3 | 3 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
4 | 4 | |
... | ... | @@ -6,10 +6,10 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); |
6 | 6 | |
7 | 7 | export const formSchemas: FormSchema[] = [ |
8 | 8 | { |
9 | - field: NodeBindDataFieldEnum.FIELDS_MAPPING, | |
9 | + field: OriginatorFieldsEnum.FIELDS_MAPPING, | |
10 | 10 | component: 'AttributeConfiguration', |
11 | - label: NodeBindDataFieldNameEnum.FIELDS_MAPPING, | |
12 | - slot: NodeBindDataFieldEnum.FIELDS_MAPPING, | |
11 | + label: OriginatorFieldsNameEnum.FIELDS_MAPPING, | |
12 | + slot: OriginatorFieldsEnum.FIELDS_MAPPING, | |
13 | 13 | valueField: 'value', |
14 | 14 | changeEvent: 'update:value', |
15 | 15 | }, | ... | ... |
... | ... | @@ -6,155 +6,169 @@ import { |
6 | 6 | TimeIntervalUnitEnum, |
7 | 7 | TimeIntervalUnitNameEnum, |
8 | 8 | } from '../../../enum/form'; |
9 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | |
9 | +import { | |
10 | + OriginatorTelemetryFieldsEnum, | |
11 | + OriginatorTelemetryFieldsNameEnum, | |
12 | +} from '../../../enum/formField/enrichment'; | |
10 | 13 | import { FormSchema } from '/@/components/Form'; |
11 | 14 | |
12 | 15 | export const formSchemas: FormSchema[] = [ |
13 | 16 | { |
14 | - field: NodeBindDataFieldEnum.LATEST_TS_KEY_NAMES, | |
17 | + field: OriginatorTelemetryFieldsEnum.LATEST_TS_KEY_NAMES, | |
15 | 18 | component: 'Select', |
16 | - label: NodeBindDataFieldNameEnum.LATEST_TS_KEY_NAMES, | |
19 | + label: OriginatorTelemetryFieldsNameEnum.LATEST_TS_KEY_NAMES, | |
17 | 20 | componentProps: { |
18 | 21 | mode: 'tags', |
19 | 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 | 29 | component: 'Select', |
25 | - label: NodeBindDataFieldNameEnum.FETCH_MODE, | |
30 | + label: OriginatorTelemetryFieldsNameEnum.FETCH_MODE, | |
26 | 31 | required: true, |
27 | 32 | componentProps: { |
28 | 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 | 40 | component: 'Select', |
34 | - label: NodeBindDataFieldNameEnum.AGGREGATION, | |
41 | + label: OriginatorTelemetryFieldsNameEnum.AGGREGATION, | |
35 | 42 | required: true, |
36 | - show: ({ model }) => model[NodeBindDataFieldEnum.FETCH_MODE] === FetchModeEnum.ALL, | |
43 | + show: ({ model }) => model[OriginatorTelemetryFieldsEnum.FETCH_MODE] === FetchModeEnum.ALL, | |
37 | 44 | componentProps: { |
38 | 45 | options: Object.keys(AggregationEnum).map((value) => ({ |
39 | 46 | label: AggregationNameEnum[value], |
40 | 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 | 55 | component: 'Select', |
57 | - label: NodeBindDataFieldNameEnum.ORDER_BY, | |
56 | + label: OriginatorTelemetryFieldsNameEnum.ORDER_BY, | |
58 | 57 | required: true, |
59 | 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 | 60 | componentProps: { |
62 | 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 | 68 | component: 'InputNumber', |
68 | - label: NodeBindDataFieldNameEnum.LIMIT, | |
69 | + label: OriginatorTelemetryFieldsNameEnum.LIMIT, | |
69 | 70 | required: true, |
70 | 71 | helpMessage: [ |
71 | 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 | 75 | componentProps: { |
75 | 76 | min: 2, |
76 | 77 | max: 1000, |
77 | 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 | 84 | component: 'Checkbox', |
83 | 85 | label: '', |
84 | 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 | 92 | component: 'InputNumber', |
91 | - label: NodeBindDataFieldNameEnum.START_INTERVAL, | |
93 | + label: OriginatorTelemetryFieldsNameEnum.START_INTERVAL, | |
92 | 94 | colProps: { span: 12 }, |
93 | 95 | required: true, |
94 | - show: ({ model }) => !model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | |
96 | + show: ({ model }) => !model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], | |
95 | 97 | componentProps: { |
96 | 98 | step: 1, |
97 | 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 | 105 | component: 'Select', |
103 | - label: NodeBindDataFieldNameEnum.START_INTERVAL_TIME_UNIT, | |
106 | + label: OriginatorTelemetryFieldsNameEnum.START_INTERVAL_TIME_UNIT, | |
104 | 107 | colProps: { span: 12 }, |
105 | 108 | required: true, |
106 | - show: ({ model }) => !model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | |
109 | + show: ({ model }) => !model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], | |
107 | 110 | componentProps: { |
108 | 111 | options: Object.keys(TimeIntervalUnitEnum).map((value) => ({ |
109 | 112 | label: TimeIntervalUnitNameEnum[value], |
110 | 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 | 121 | component: 'InputNumber', |
117 | - label: NodeBindDataFieldNameEnum.END_INTERVAL, | |
122 | + label: OriginatorTelemetryFieldsNameEnum.END_INTERVAL, | |
118 | 123 | colProps: { span: 12 }, |
119 | 124 | required: true, |
120 | - show: ({ model }) => !model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | |
125 | + show: ({ model }) => !model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], | |
121 | 126 | componentProps: { |
122 | 127 | step: 1, |
123 | 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 | 134 | component: 'Select', |
129 | - label: NodeBindDataFieldNameEnum.END_INTERVAL_TIME_UNIT, | |
135 | + label: OriginatorTelemetryFieldsNameEnum.END_INTERVAL_TIME_UNIT, | |
130 | 136 | colProps: { span: 12 }, |
131 | 137 | required: true, |
132 | - show: ({ model }) => !model[NodeBindDataFieldEnum.USE_METADATA_INTERVAL_PATTERNS], | |
138 | + show: ({ model }) => !model[OriginatorTelemetryFieldsEnum.USE_METADATA_INTERVAL_PATTERNS], | |
133 | 139 | componentProps: { |
134 | 140 | options: Object.keys(TimeIntervalUnitEnum).map((value) => ({ |
135 | 141 | label: TimeIntervalUnitNameEnum[value], |
136 | 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 | 150 | component: 'Input', |
143 | - label: NodeBindDataFieldNameEnum.START_INTERVAL_PATTERN, | |
151 | + label: OriginatorTelemetryFieldsNameEnum.START_INTERVAL_PATTERN, | |
144 | 152 | required: true, |
145 | 153 | helpMessage: [ |
146 | 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 | 163 | component: 'Input', |
153 | - label: NodeBindDataFieldNameEnum.END_INTERVAL_PATTERN, | |
164 | + label: OriginatorTelemetryFieldsNameEnum.END_INTERVAL_PATTERN, | |
154 | 165 | required: true, |
155 | 166 | helpMessage: [ |
156 | 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 | 1 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
3 | 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
4 | 3 | import { RelationsQuery } from '/@/views/rule/designer/src/components/RelationsQuery'; |
4 | +import { | |
5 | + RelatedAttributesFieldsEnum, | |
6 | + RelatedAttributesFieldsNameEnum, | |
7 | +} from '../../../enum/formField/enrichment'; | |
5 | 8 | |
6 | 9 | useComponentRegister('RelationsQuery', RelationsQuery); |
7 | 10 | useComponentRegister('AttributeConfiguration', AttributeConfiguration); |
8 | 11 | |
9 | 12 | export const formSchemas: FormSchema[] = [ |
10 | 13 | { |
11 | - field: NodeBindDataFieldEnum.RELATIONS_QUERY, | |
14 | + field: RelatedAttributesFieldsEnum.RELATIONS_QUERY, | |
12 | 15 | component: 'RelationsQuery', |
13 | - label: NodeBindDataFieldNameEnum.RELATIONS_QUERY, | |
16 | + label: RelatedAttributesFieldsNameEnum.RELATIONS_QUERY, | |
14 | 17 | changeEvent: 'update:value', |
15 | 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 | 23 | component: 'Checkbox', |
21 | 24 | label: '', |
22 | 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 | 31 | component: 'AttributeConfiguration', |
29 | 32 | label: '', |
30 | - slot: NodeBindDataFieldEnum.ATTR_MAPING, | |
33 | + slot: RelatedAttributesFieldsEnum.ATTR_MAPPING, | |
31 | 34 | }, |
32 | 35 | ]; | ... | ... |
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | import { NodeData } from '../../../types/node'; |
6 | 6 | import { RelationsQuery } from '/@/views/rule/designer/src/components/RelationsQuery'; |
7 | 7 | import { ref, unref } from 'vue'; |
8 | - import { NodeBindDataFieldEnum } from '../../../enum/node'; | |
9 | 8 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
9 | + import { RelatedAttributesFieldsEnum } from '../../../enum/formField/enrichment'; | |
10 | 10 | |
11 | 11 | defineProps<{ |
12 | 12 | config: NodeData; |
... | ... | @@ -30,8 +30,8 @@ |
30 | 30 | const attrMapping = unref(attributeControlElRef)?.getFieldsValue(); |
31 | 31 | return { |
32 | 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 | 39 | resetFields(); |
40 | 40 | setFieldsValue(value); |
41 | 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 | 47 | defineExpose({ |
... | ... | @@ -59,7 +59,9 @@ |
59 | 59 | <AttributeConfiguration |
60 | 60 | v-model:value="model[field]" |
61 | 61 | ref="attributeControlElRef" |
62 | - :keyLabel="`Source ${model[NodeBindDataFieldEnum.TELEMETRY] ? 'telemetry' : 'attribute'}`" | |
62 | + :keyLabel="`Source ${ | |
63 | + model[RelatedAttributesFieldsEnum.TELEMETRY] ? 'telemetry' : 'attribute' | |
64 | + }`" | |
63 | 65 | valueLabel="Target attribute" |
64 | 66 | > |
65 | 67 | <template #afterForm> | ... | ... |
... | ... | @@ -4,7 +4,11 @@ import { |
4 | 4 | RelationTypeEnum, |
5 | 5 | RelationTypeNameEnum, |
6 | 6 | } from '../../../enum/form'; |
7 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | |
7 | +import { | |
8 | + RelatedDeviceAttributeFieldsEnum, | |
9 | + RelatedDeviceAttributeFieldsNameEnum, | |
10 | +} from '../../../enum/formField/enrichment'; | |
11 | + | |
8 | 12 | import { getDeviceTypes } from '/@/api/ruleChainDesigner'; |
9 | 13 | import { FormSchema } from '/@/components/Form'; |
10 | 14 | |
... | ... | @@ -28,17 +32,17 @@ export interface DeviceRelationsQuery { |
28 | 32 | |
29 | 33 | export const formSchemas: FormSchema[] = [ |
30 | 34 | { |
31 | - field: NodeBindDataFieldEnum.FETCH_LAST_LEVEL_ONLY, | |
35 | + field: RelatedDeviceAttributeFieldsEnum.FETCH_LAST_LEVEL_ONLY, | |
32 | 36 | component: 'Checkbox', |
33 | 37 | label: '', |
34 | 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 | 44 | component: 'Select', |
41 | - label: NodeBindDataFieldNameEnum.DIRECTION, | |
45 | + label: RelatedDeviceAttributeFieldsNameEnum.DIRECTION, | |
42 | 46 | required: true, |
43 | 47 | colProps: { span: 12 }, |
44 | 48 | componentProps: { |
... | ... | @@ -46,99 +50,100 @@ export const formSchemas: FormSchema[] = [ |
46 | 50 | label: DirectionNameEnum[value], |
47 | 51 | value, |
48 | 52 | })), |
49 | - placeholder: `请选择${NodeBindDataFieldNameEnum.DIRECTION}`, | |
53 | + placeholder: `请选择${RelatedDeviceAttributeFieldsNameEnum.DIRECTION}`, | |
50 | 54 | getPopupContainer: () => document.body, |
51 | 55 | }, |
52 | 56 | }, |
53 | 57 | { |
54 | - field: NodeBindDataFieldEnum.MAX_LEVEL, | |
58 | + field: RelatedDeviceAttributeFieldsEnum.MAX_LEVEL, | |
55 | 59 | component: 'InputNumber', |
56 | - label: NodeBindDataFieldNameEnum.MAX_LEVEL, | |
60 | + label: RelatedDeviceAttributeFieldsNameEnum.MAX_LEVEL, | |
57 | 61 | colProps: { span: 12 }, |
58 | 62 | componentProps: { |
59 | 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 | 69 | component: 'Select', |
65 | - label: NodeBindDataFieldNameEnum.RELATION_TYPE, | |
70 | + label: RelatedDeviceAttributeFieldsNameEnum.RELATION_TYPE, | |
66 | 71 | componentProps: { |
67 | 72 | options: Object.keys(RelationTypeEnum).map((value) => ({ |
68 | 73 | label: RelationTypeNameEnum[value], |
69 | 74 | value, |
70 | 75 | })), |
71 | - placeholder: `请选择${NodeBindDataFieldNameEnum.RELATION_TYPE}`, | |
76 | + placeholder: `请选择${RelatedDeviceAttributeFieldsNameEnum.RELATION_TYPE}`, | |
72 | 77 | getPopupContainer: () => document.body, |
73 | 78 | }, |
74 | 79 | }, |
75 | 80 | { |
76 | - field: NodeBindDataFieldEnum.DEVICE_TYPES, | |
81 | + field: RelatedDeviceAttributeFieldsEnum.DEVICE_TYPES, | |
77 | 82 | component: 'ApiSelect', |
78 | - label: NodeBindDataFieldNameEnum.DEVICE_TYPES, | |
83 | + label: RelatedDeviceAttributeFieldsNameEnum.DEVICE_TYPES, | |
79 | 84 | componentProps: { |
80 | 85 | mode: 'multiple', |
81 | 86 | api: getDeviceTypes, |
82 | 87 | labelField: 'type', |
83 | 88 | valueField: 'type', |
84 | 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 | 95 | component: 'Checkbox', |
91 | 96 | label: '', |
92 | 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 | 103 | component: 'Select', |
99 | - label: NodeBindDataFieldNameEnum.CLIENT_ATTRIBUTE_NAMES, | |
104 | + label: RelatedDeviceAttributeFieldsNameEnum.CLIENT_ATTRIBUTE_NAMES, | |
100 | 105 | componentProps: { |
101 | 106 | open: false, |
102 | 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 | 113 | component: 'Select', |
109 | - label: NodeBindDataFieldNameEnum.SHARED_ATTRIBUTE_NAMES, | |
114 | + label: RelatedDeviceAttributeFieldsNameEnum.SHARED_ATTRIBUTE_NAMES, | |
110 | 115 | componentProps: { |
111 | 116 | open: false, |
112 | 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 | 123 | component: 'Select', |
119 | - label: NodeBindDataFieldNameEnum.SERVER_ATTRIBUTE_NAMES, | |
124 | + label: RelatedDeviceAttributeFieldsNameEnum.SERVER_ATTRIBUTE_NAMES, | |
120 | 125 | componentProps: { |
121 | 126 | open: false, |
122 | 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 | 133 | component: 'Select', |
129 | - label: NodeBindDataFieldNameEnum.LATEST_TS_KEY_NAMES, | |
134 | + label: RelatedDeviceAttributeFieldsNameEnum.LATEST_TS_KEY_NAMES, | |
130 | 135 | componentProps: { |
131 | 136 | open: false, |
132 | 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 | 143 | component: 'Checkbox', |
139 | 144 | label: '', |
140 | 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 | 3 | import { BasicForm, useForm } from '/@/components/Form'; |
4 | 4 | import { DeviceRelationsQuery, formSchemas, ValueType } from './create.config'; |
5 | 5 | import { NodeData } from '../../../types/node'; |
6 | - import { NodeBindDataFieldEnum } from '../../../enum/node'; | |
6 | + import { RelatedDeviceAttributeFieldsEnum } from '../../../enum/formField/enrichment'; | |
7 | 7 | |
8 | 8 | defineProps<{ |
9 | 9 | config: NodeData; |
... | ... | @@ -18,32 +18,40 @@ |
18 | 18 | await validate(); |
19 | 19 | const value = getFieldsValue() || {}; |
20 | 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 | 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 | 45 | } as ValueType; |
41 | 46 | }; |
42 | 47 | |
43 | 48 | const setValue: CreateModalDefineExposeType['setFieldsValue'] = (value) => { |
44 | 49 | resetFields(); |
45 | 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 | 57 | defineExpose({ | ... | ... |
1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | |
1 | +import { | |
2 | + TenantAttributesFieldsEnum, | |
3 | + TenantAttributesFieldsNameEnum, | |
4 | +} from '../../../enum/formField/enrichment'; | |
2 | 5 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
3 | 6 | import { AttributeConfiguration } from '/@/views/rule/designer/src/components/AttributeConfiguration'; |
4 | 7 | |
... | ... | @@ -6,20 +9,20 @@ useComponentRegister('AttributeConfiguration', AttributeConfiguration); |
6 | 9 | |
7 | 10 | export const formSchemas: FormSchema[] = [ |
8 | 11 | { |
9 | - field: NodeBindDataFieldEnum.TELEMETRY, | |
12 | + field: TenantAttributesFieldsEnum.TELEMETRY, | |
10 | 13 | component: 'Checkbox', |
11 | 14 | label: '', |
12 | 15 | renderComponentContent: () => { |
13 | 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 | 23 | component: 'AttributeConfiguration', |
21 | - label: NodeBindDataFieldNameEnum.ATTR_MAPING, | |
22 | - slot: NodeBindDataFieldEnum.ATTR_MAPING, | |
24 | + label: TenantAttributesFieldsNameEnum.ATTR_MAPING, | |
25 | + slot: TenantAttributesFieldsEnum.ATTR_MAPING, | |
23 | 26 | valueField: 'value', |
24 | 27 | changeEvent: 'update:value', |
25 | 28 | }, | ... | ... |
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | import { credentialsTypeOptions, FileItemType, formSchemas } from './config'; |
5 | 5 | import { ref, watch } from 'vue'; |
6 | 6 | import { buildUUID } from '/@/utils/uuid'; |
7 | - import { CredentialsTypeEnum, CredentialsTypeNameEnum } from '../../../../enum/form'; | |
7 | + import { CredentialsTypeEnum, CredentialsTypeNameEnum } from './config'; | |
8 | 8 | import { AzureIotHubFieldsEnum } from '../../../../enum/formField/external'; |
9 | 9 | |
10 | 10 | const props = withDefaults( |
... | ... | @@ -59,7 +59,7 @@ |
59 | 59 | value, |
60 | 60 | AzureIotHubFieldsEnum.CA_CERT_FILE_NAME |
61 | 61 | ), |
62 | - [AzureIotHubFieldsEnum.CA_CERT]: getFileValue(value?.[AzureIotHubFieldsEnum.CERT]), | |
62 | + [AzureIotHubFieldsEnum.CERT]: getFileValue(value?.[AzureIotHubFieldsEnum.CERT]), | |
63 | 63 | [AzureIotHubFieldsEnum.CERT_FILE_NAME]: getValueByKey( |
64 | 64 | value, |
65 | 65 | AzureIotHubFieldsEnum.CERT_FILE_NAME | ... | ... |
1 | 1 | import { GcpPubsubFieldsEnum, GcpPubsubFieldsNameEnum } from '../../../enum/formField/external'; |
2 | 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 | 4 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
5 | 5 | |
6 | 6 | useComponentRegister('AttributeConfiguration', AttributeConfiguration); | ... | ... |
... | ... | @@ -27,6 +27,7 @@ export const formSchemas: FormSchema[] = [ |
27 | 27 | allowClear: true, |
28 | 28 | options: Object.keys(MessagePropertiesEnum).map((value) => ({ label: value, value })), |
29 | 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 | 80 | component: 'Select', |
81 | 81 | required: true, |
82 | 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 | 84 | componentProps: { |
86 | 85 | options: Object.keys(TSLVersionEnum).map((value) => ({ |
87 | 86 | label: TSLVersionNameEnum[value], |
... | ... | @@ -107,7 +106,8 @@ export const formSchemas: FormSchema[] = [ |
107 | 106 | required: true, |
108 | 107 | colProps: { span: 12 }, |
109 | 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 | 111 | componentProps: { |
112 | 112 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_HOST}`, |
113 | 113 | }, |
... | ... | @@ -119,7 +119,8 @@ export const formSchemas: FormSchema[] = [ |
119 | 119 | required: true, |
120 | 120 | colProps: { span: 12 }, |
121 | 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 | 124 | componentProps: { |
124 | 125 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_PORT}`, |
125 | 126 | }, |
... | ... | @@ -129,7 +130,8 @@ export const formSchemas: FormSchema[] = [ |
129 | 130 | label: SendEmailFieldsNameEnum.PROXY_USER, |
130 | 131 | component: 'Input', |
131 | 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 | 135 | componentProps: { |
134 | 136 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_USER}`, |
135 | 137 | }, |
... | ... | @@ -138,7 +140,9 @@ export const formSchemas: FormSchema[] = [ |
138 | 140 | field: SendEmailFieldsEnum.PROXY_PASSWORD, |
139 | 141 | label: SendEmailFieldsNameEnum.PROXY_PASSWORD, |
140 | 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 | 146 | componentProps: { |
143 | 147 | placeholder: `请输入${SendEmailFieldsNameEnum.PROXY_PASSWORD}`, |
144 | 148 | }, | ... | ... |
... | ... | @@ -58,7 +58,7 @@ export const formSchemas: FormSchema[] = [ |
58 | 58 | !model[SendSMSFieldsEnum.USE_SYSTEM_SMS_SETTINGS] && |
59 | 59 | model[SendSMSFieldsEnum.TYPE] === SMSServiceProviderEnum.TWILIO, |
60 | 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 | 5 | import { FormSchema } from '/@/components/Form'; |
3 | 6 | import { AlarmStatus, AlarmStatusMean } from '/@/enums/alarmEnum'; |
4 | 7 | |
5 | 8 | export const formSchemas: FormSchema[] = [ |
6 | 9 | { |
7 | - field: NodeBindDataFieldEnum.ALARM_STATUS_LIST, | |
10 | + field: CheckAlarmStatusFieldEnum.ALARM_STATUS_LIST, | |
8 | 11 | component: 'Select', |
9 | - label: NodeBindDataFieldNameEnum.ALARM_STATUS_LIST, | |
12 | + label: CheckAlarmStatusFieldNameEnum.ALARM_STATUS_LIST, | |
10 | 13 | required: true, |
11 | 14 | componentProps: { |
12 | 15 | mode: 'multiple', |
13 | 16 | getPopupContainer: () => document.body, |
14 | - placeholder: `请选择${NodeBindDataFieldNameEnum.ALARM_STATUS_LIST}`, | |
17 | + placeholder: `请选择${CheckAlarmStatusFieldNameEnum.ALARM_STATUS_LIST}`, | |
15 | 18 | options: [ |
16 | 19 | { |
17 | 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 | 5 | import { FormSchema } from '/@/components/Form'; |
3 | 6 | |
4 | 7 | export const formSchemas: FormSchema[] = [ |
5 | 8 | { |
6 | - field: NodeBindDataFieldEnum.MESSAGE_NAMES, | |
9 | + field: CheckExistenceFieldsEnum.MESSAGE_NAMES, | |
7 | 10 | component: 'Select', |
8 | - label: NodeBindDataFieldNameEnum.MESSAGE_NAMES, | |
11 | + label: CheckExistenceFieldsNameEnum.MESSAGE_NAMES, | |
9 | 12 | componentProps: { |
10 | 13 | mode: 'tags', |
11 | 14 | open: false, |
12 | 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 | 21 | component: 'Select', |
18 | - label: NodeBindDataFieldNameEnum.METADATA_NAMES, | |
22 | + label: CheckExistenceFieldsNameEnum.METADATA_NAMES, | |
19 | 23 | componentProps: { |
20 | 24 | mode: 'tags', |
21 | 25 | open: false, |
22 | 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 | 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 | 6 | RelationTypeEnum, |
7 | 7 | RelationTypeNameEnum, |
8 | 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 | 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 | 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 | 63 | component: 'Checkbox', |
22 | 64 | label: '', |
23 | 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 | 71 | component: 'Select', |
30 | - label: NodeBindDataFieldEnum.DIRECTION, | |
72 | + label: CheckRelationFieldsNameEnum.DIRECTION, | |
31 | 73 | componentProps: { |
32 | 74 | options: [ |
33 | 75 | { label: DirectionNameEnum.FROM, value: DirectionEnum.FROM }, |
34 | 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 | 84 | component: 'Select', |
41 | - label: NodeBindDataFieldNameEnum.ENTITY_TYPE, | |
85 | + label: CheckRelationFieldsNameEnum.ENTITY_TYPE, | |
42 | 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 | 105 | label: ' ', |
54 | 106 | colProps: { span: 16 }, |
55 | - show: ({ model }) => model[NodeBindDataFieldEnum.ENTITY_TYPE], | |
107 | + show: ({ model }) => model[CheckRelationFieldsEnum.ENTITY_TYPE], | |
56 | 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 | 116 | component: 'Select', |
72 | - label: NodeBindDataFieldNameEnum.RELEATION_TYPE, | |
117 | + label: CheckRelationFieldsNameEnum.RELEATION_TYPE, | |
73 | 118 | defaultValue: RelationTypeEnum.CONTAINS, |
74 | 119 | componentProps: { |
75 | 120 | options: Object.keys(RelationTypeEnum).map((value) => ({ | ... | ... |
1 | 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 | 6 | import { FormSchema } from '/@/components/Form'; |
4 | 7 | |
5 | 8 | export const formSchemas: FormSchema[] = [ |
6 | 9 | { |
7 | - field: NodeBindDataFieldEnum.LATITUDE_KEY_NAME, | |
10 | + field: GpsGeofencingFilterFieldsEnum.LATITUDE_KEY_NAME, | |
8 | 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 | 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 | 21 | component: 'Select', |
19 | - label: NodeBindDataFieldNameEnum.PERIMETER_TYPE, | |
22 | + label: GpsGeofencingFilterFieldsNameEnum.PERIMETER_TYPE, | |
20 | 23 | componentProps: { |
21 | 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 | 29 | component: 'Checkbox', |
27 | 30 | label: '', |
28 | 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 | 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 | 44 | component: 'Input', |
41 | - label: NodeBindDataFieldNameEnum.POLYGONS_DEFINITION, | |
45 | + label: GpsGeofencingFilterFieldsNameEnum.POLYGONS_DEFINITION, | |
42 | 46 | helpMessage: |
43 | 47 | 'Please, use the following format for manual definition of polygon: [[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]].', |
44 | 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 | 54 | component: 'InputNumber', |
51 | - label: NodeBindDataFieldNameEnum.CENTER_LATITUDE, | |
55 | + label: GpsGeofencingFilterFieldsNameEnum.CENTER_LATITUDE, | |
52 | 56 | colProps: { span: 12 }, |
53 | 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 | 63 | component: 'InputNumber', |
60 | - label: NodeBindDataFieldNameEnum.CENTER_LONGITUDE, | |
64 | + label: GpsGeofencingFilterFieldsNameEnum.CENTER_LONGITUDE, | |
61 | 65 | colProps: { span: 12 }, |
62 | 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 | 72 | component: 'InputNumber', |
69 | - label: NodeBindDataFieldNameEnum.RANGE, | |
73 | + label: GpsGeofencingFilterFieldsNameEnum.RANGE, | |
70 | 74 | colProps: { span: 12 }, |
71 | 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 | 81 | component: 'Select', |
78 | - label: NodeBindDataFieldNameEnum.RANGE_UNIT, | |
82 | + label: GpsGeofencingFilterFieldsNameEnum.RANGE_UNIT, | |
79 | 83 | colProps: { span: 12 }, |
80 | 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 | 87 | componentProps: { |
84 | 88 | options: Object.keys(RangeUtilEnum).map((value) => ({ |
85 | 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 | 3 | import { FormSchema } from '/@/components/Form'; |
4 | -import { DictEnum } from '/@/enums/dictEnum'; | |
5 | 4 | |
6 | 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 | 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 | 15 | mode: 'multiple', |
17 | - labelField: 'itemText', | |
18 | - valueField: 'itemValue', | |
16 | + placeholder: `请选择${MessageTypeFieldsNameEnum.MESSAGE_TYPES}`, | |
19 | 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 | 5 | import { findDictItemByCode } from '/@/api/system/dict'; |
3 | 6 | import { FormSchema } from '/@/components/Form'; |
4 | 7 | import { DictEnum } from '/@/enums/dictEnum'; |
5 | 8 | |
6 | 9 | export const formSchemas: FormSchema[] = [ |
7 | 10 | { |
8 | - field: NodeBindDataFieldEnum.ORIGINATOR_TYPES, | |
11 | + field: OriginatorTypeFieldsEnum.ORIGINATOR_TYPES, | |
9 | 12 | component: 'ApiSelect', |
10 | - label: NodeBindDataFieldNameEnum.ORIGINATOR_TYPES, | |
13 | + label: OriginatorTypeFieldsNameEnum.ORIGINATOR_TYPES, | |
11 | 14 | componentProps: { |
12 | 15 | api: findDictItemByCode, |
13 | 16 | params: { | ... | ... |
1 | 1 | import { h } from 'vue'; |
2 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | |
3 | 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
4 | 3 | import HelpMessage from './HelpMessage.vue'; |
5 | 4 | import { JavascriptEditorWithTestModal } from '/@/views/rule/designer/src/components/JavaScriptFilterModal'; |
5 | +import { ScriptFieldsEnum, ScriptFieldsNameEnum } from '../../../enum/formField/filter'; | |
6 | 6 | |
7 | 7 | useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestModal); |
8 | 8 | |
9 | 9 | export const formSchemas: FormSchema[] = [ |
10 | 10 | { |
11 | - field: NodeBindDataFieldEnum.JS_SCRIPT, | |
11 | + field: ScriptFieldsEnum.JS_SCRIPT, | |
12 | 12 | component: 'JavascriptEditorWithTestModal', |
13 | - label: NodeBindDataFieldNameEnum.JS_SCRIPT, | |
13 | + label: ScriptFieldsNameEnum.JS_SCRIPT, | |
14 | 14 | changeEvent: 'update:value', |
15 | 15 | valueField: 'value', |
16 | 16 | renderComponentContent: () => { | ... | ... |
1 | -import { NodeBindDataFieldEnum, NodeBindDataFieldNameEnum } from '../../../enum/node'; | |
1 | +import { SwitchFieldsEnum, SwitchFieldsNameEnum } from '../../../enum/formField/filter'; | |
2 | 2 | import { FormSchema, useComponentRegister } from '/@/components/Form'; |
3 | 3 | import { JavascriptEditorWithTestModal } from '/@/views/rule/designer/src/components/JavaScriptFilterModal'; |
4 | 4 | |
... | ... | @@ -6,9 +6,9 @@ useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestMo |
6 | 6 | |
7 | 7 | export const formSchemas: FormSchema[] = [ |
8 | 8 | { |
9 | - field: NodeBindDataFieldEnum.JS_SCRIPT, | |
9 | + field: SwitchFieldsEnum.JS_SCRIPT, | |
10 | 10 | component: 'JavascriptEditorWithTestModal', |
11 | - label: NodeBindDataFieldNameEnum.JS_SCRIPT, | |
11 | + label: SwitchFieldsNameEnum.JS_SCRIPT, | |
12 | 12 | changeEvent: 'update:value', |
13 | 13 | valueField: 'value', |
14 | 14 | componentProps: { | ... | ... |
... | ... | @@ -2,6 +2,17 @@ import { RuleChainFieldsEnum, RuleChainFieldsNameEnum } from '../../../enum/form |
2 | 2 | import { getRuleChains } from '/@/api/ruleDesigner'; |
3 | 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 | 16 | export const formSchemas: FormSchema[] = [ |
6 | 17 | { |
7 | 18 | field: RuleChainFieldsEnum.RULE_CHAIN_ID, |
... | ... | @@ -11,16 +22,13 @@ export const formSchemas: FormSchema[] = [ |
11 | 22 | return { |
12 | 23 | placeholder: '请选择所属产品', |
13 | 24 | showSearch: true, |
14 | - resultField: 'data', | |
15 | - labelField: 'name', | |
16 | - valueField: 'id.id', | |
17 | 25 | params: { |
18 | 26 | pageSize: 50, |
19 | 27 | page: 0, |
20 | 28 | type: 'CORE', |
21 | 29 | }, |
22 | - api: getRuleChains, | |
23 | - searchApi: getRuleChains, | |
30 | + api: fetch, | |
31 | + searchApi: fetch, | |
24 | 32 | getPopupContainer: () => document.body, |
25 | 33 | }; |
26 | 34 | }, | ... | ... |
... | ... | @@ -28,5 +28,7 @@ export const formSchemas: FormSchema[] = [ |
28 | 28 | component: 'RelationsQuery', |
29 | 29 | label: ChangeOriginatorFieldsNameEnum.RELATIONS_QUERY, |
30 | 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 | 47 | <template> |
4 | - <div>自定义</div> | |
48 | + <BasicForm @register="register" /> | |
5 | 49 | </template> | ... | ... |
... | ... | @@ -16,8 +16,8 @@ export const TopFormSchemas: FormSchema[] = [ |
16 | 16 | }, |
17 | 17 | { |
18 | 18 | field: NodeBindDataFieldEnum.DEBUG_MODE, |
19 | - component: 'Checkbox', | |
20 | - label: '', | |
19 | + component: 'Switch', | |
20 | + label: NodeBindDataFieldNameEnum.DEBUG_MODE, | |
21 | 21 | colProps: { |
22 | 22 | offset: 2, |
23 | 23 | span: 6, | ... | ... |
1 | 1 | <script lang="ts" setup> |
2 | 2 | import { Card, Select, Tag, Form, Button } from 'ant-design-vue'; |
3 | 3 | import { ref, toRaw, unref, watch } from 'vue'; |
4 | - import { MessageTypesFilterEnum, MessageTypesFilterNameEnum } from '../../../enum/form'; | |
4 | + import { MessageTypesEnum, MessageTypesNameEnum } from '../../../enum/form'; | |
5 | 5 | import { JSONEditor } from '/@/components/CodeEditor'; |
6 | 6 | import { Icon } from '/@/components/Icon'; |
7 | 7 | import { JavaScriptFunctionEditor } from '/@/components/Form'; |
... | ... | @@ -12,7 +12,7 @@ |
12 | 12 | interface Value { |
13 | 13 | msg: Recordable; |
14 | 14 | metadata: Recordable; |
15 | - msgType: MessageTypesFilterEnum; | |
15 | + msgType: MessageTypesEnum; | |
16 | 16 | javascriptFunction: string; |
17 | 17 | } |
18 | 18 | |
... | ... | @@ -35,9 +35,9 @@ |
35 | 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 | 41 | value, |
42 | 42 | })); |
43 | 43 | ... | ... |
1 | 1 | <script lang="ts" setup> |
2 | 2 | import { BasicModal, useModalInner } from '/@/components/Modal'; |
3 | 3 | import JavaScriptFilterTest from './JavaScriptFilterTest.vue'; |
4 | - import { MessageTypesFilterEnum } from '../../../enum/form'; | |
4 | + import { MessageTypesEnum } from '../../../enum/form'; | |
5 | 5 | import { ref } from 'vue'; |
6 | 6 | import { JavaScriptFunctionEditor } from '/@/components/Form'; |
7 | 7 | |
... | ... | @@ -15,7 +15,7 @@ |
15 | 15 | interface SaveValueType { |
16 | 16 | msg: Recordable; |
17 | 17 | metadata: Recordable; |
18 | - msgType: MessageTypesFilterEnum; | |
18 | + msgType: MessageTypesEnum; | |
19 | 19 | javascriptFunction: string; |
20 | 20 | } |
21 | 21 | ... | ... |