diff --git a/src/hooks/Rule/rule/useRule.ts b/src/hooks/Rule/rule/useRule.ts index cf0d98a88..460da8f4f 100644 --- a/src/hooks/Rule/rule/useRule.ts +++ b/src/hooks/Rule/rule/useRule.ts @@ -232,19 +232,24 @@ export const useRuleUtils = (): { } } +export const SourceServerType = { + MQTTBroker: BridgeType.MQTT, +} + /** * Unlike RuleInputType, the action here is specific to what type of action it is. */ export const RuleSourceType = { Message: 'message', Event: 'event', - MQTTBroker: BridgeType.MQTT, + ...SourceServerType, } export const useRuleInputs = (): { getBridgeIdFromInput: (input: string) => string detectInputType: (from: string) => string isBridgeType: (type: string) => boolean isNotBridgeSourceTypes: Array + sourceServerOptList: Array<{ value: string; label: string }> sourceOptList: Array<{ value: string; label: string }> getRuleSourceIcon: (type: string) => string } => { @@ -272,6 +277,11 @@ export const useRuleInputs = (): { return ret || specificType } + const sourceServerOptList = Object.entries(SourceServerType).map(([, value]) => ({ + value, + label: getTypeLabel(value), + })) + const sourceOptList = Object.entries(RuleSourceType).map(([, value]) => ({ value, label: getTypeLabel(value), @@ -335,6 +345,7 @@ export const useRuleInputs = (): { detectInputType, isBridgeType, isNotBridgeSourceTypes, + sourceServerOptList, sourceOptList, getRuleSourceIcon, } diff --git a/src/hooks/usePaging.ts b/src/hooks/usePaging.ts index 87320b40e..f4632dccc 100644 --- a/src/hooks/usePaging.ts +++ b/src/hooks/usePaging.ts @@ -11,7 +11,7 @@ interface PageMeta { export interface FilterItem { key: string - value: string + value: string | boolean } interface SortFrom { @@ -46,14 +46,22 @@ export default (): { chunkList() } + const checkValue = (filterValue: string | boolean, value: any) => { + if (typeof filterValue === 'string') { + const reg = new RegExp(filterValue, 'i') + return reg.test(value) + } + return filterValue === value + } + const filterList = (filters: Array = []) => { latestFiltersString = JSON.stringify(filters) if (filters.length === 0) { listAfterFilter.value = totalData.value } else { - listAfterFilter.value = totalData.value.filter((item) => - filters.every(({ key, value }) => item[key]?.indexOf && item[key].indexOf(value) > -1), - ) + listAfterFilter.value = totalData.value.filter((item) => { + return filters.every(({ key, value: filterValue }) => checkValue(filterValue, item[key])) + }) } } diff --git a/src/i18n/RuleEngine.js b/src/i18n/RuleEngine.js index 1449c34aa..467e29595 100644 --- a/src/i18n/RuleEngine.js +++ b/src/i18n/RuleEngine.js @@ -1089,6 +1089,10 @@ export default { zh: '关联规则', en: 'Associated Rules', }, + viewRules: { + zh: '查看规则', + en: 'View Rules', + }, directDispatch: { zh: '直接派发', en: 'Direct Dispatch', diff --git a/src/views/RuleEngine/components/ActionAndSourceFilterForm.vue b/src/views/RuleEngine/components/ActionAndSourceFilterForm.vue index af85180df..7646338ff 100644 --- a/src/views/RuleEngine/components/ActionAndSourceFilterForm.vue +++ b/src/views/RuleEngine/components/ActionAndSourceFilterForm.vue @@ -87,6 +87,7 @@ import { SEARCH_FORM_RES_PROPS as colProps } from '@/common/constants' import { titleCase } from '@/common/tools' import useBridgeTypeValue from '@/hooks/Rule/bridge/useBridgeTypeValue' +import { useRuleInputs } from '@/hooks/Rule/rule/useRule' import useActionAndSourceStatus from '@/hooks/Rule/useActionAndSourceStatus' import useI18nTl from '@/hooks/useI18nTl' import { ConnectionStatus } from '@/types/enum' @@ -123,9 +124,10 @@ const showMoreQuery = ref(false) const filterParams: Ref = ref(createRawFilterParams()) const { egressBridgeTypeList: actionTypeList } = useBridgeTypeValue() +const { sourceServerOptList } = useRuleInputs() const typeOptList = [ { value: NOT_SPECIFIC_TYPE, label: t('Base.all') }, - ...(props.type === 'action' ? actionTypeList : []), + ...(props.type === 'source' ? sourceServerOptList : actionTypeList), ] const { statusOptList } = useActionAndSourceStatus() diff --git a/src/views/RuleEngine/components/ActionAndSourceList.vue b/src/views/RuleEngine/components/ActionAndSourceList.vue index 631b00aab..cf4112853 100644 --- a/src/views/RuleEngine/components/ActionAndSourceList.vue +++ b/src/views/RuleEngine/components/ActionAndSourceList.vue @@ -26,13 +26,6 @@ - - -