diff --git a/src/views/device/Firmware/Task/Save/SelectDevices.vue b/src/views/device/Firmware/Task/Save/SelectDevices.vue index 355efce9..6caf66f5 100644 --- a/src/views/device/Firmware/Task/Save/SelectDevices.vue +++ b/src/views/device/Firmware/Task/Save/SelectDevices.vue @@ -166,6 +166,7 @@ const columns = [ dataIndex: 'registerTime', search: { type: 'date', + rename: 'registryTime' }, width: 200, scopedSlots: true, @@ -290,7 +291,19 @@ watch( * @param params */ const handleSearch = (e: any) => { - params.value = e; + const newParams = (e?.terms as any[])?.map(item1 => { + item1.terms = item1.terms.map((item2: any) => { + if (item2.column === 'version') { + return { + column: 'id$dev-firmware', + value: [item2] + } + } + return item2 + }) + return item1 + }) + params.value = { terms: newParams || []} }; diff --git a/src/views/device/Product/Detail/DeviceAccess/index.vue b/src/views/device/Product/Detail/DeviceAccess/index.vue index 0a2444f9..da67db62 100644 --- a/src/views/device/Product/Detail/DeviceAccess/index.vue +++ b/src/views/device/Product/Detail/DeviceAccess/index.vue @@ -1019,6 +1019,9 @@ watchEffect(() => { nextTick(() => { getData(); }); +watch(()=>productStore.current,()=>{ + getData() +}) + diff --git a/src/views/rule-engine/DashBoard/index.vue b/src/views/rule-engine/DashBoard/index.vue index 039d03f6..f3658a2c 100644 --- a/src/views/rule-engine/DashBoard/index.vue +++ b/src/views/rule-engine/DashBoard/index.vue @@ -42,7 +42,6 @@ @@ -483,7 +482,11 @@ const selectChange = () => { ], }; state.ranking = res.result - ?.filter((item: any) => item.group === 'alarmRank') + ?.filter( + (item: any) => + item.group === 'alarmRank' && + item.data?.value?.count !== 0, + ) .map((d: { data: { value: any } }) => d.data?.value) .sort( (a: { count: number }, b: { count: number }) => diff --git a/src/views/rule-engine/Scene/Save/action/ListItem/FilterCondition.vue b/src/views/rule-engine/Scene/Save/action/ListItem/FilterCondition.vue index 80dc2198..9126c28d 100644 --- a/src/views/rule-engine/Scene/Save/action/ListItem/FilterCondition.vue +++ b/src/views/rule-engine/Scene/Save/action/ListItem/FilterCondition.vue @@ -242,10 +242,30 @@ const handleOptionsColumnsValue = (termsColumns: any[], _options: any) => { } const columnSelect = (e: any) => { - paramsValue.termType = 'eq' - paramsValue.value = { - source: tabsOptions.value[0].key, - value: undefined + const dataType = e.type + const hasTypeChange = dataType !== tabsOptions.value[0].component + let termTypeChange = false + + // 如果参数类型未发生变化,则不修改操作符以及值 + const termTypes = e.termTypes + if (!termTypes.some((item: {id: string}) => paramsValue.termType === item.id)) { // 修改操作符 + termTypeChange = true + paramsValue.termType = termTypes?.length ? termTypes[0].id : 'eq' + } + + if (hasTypeChange) { + paramsValue.termType = termTypes?.length ? termTypes[0].id : 'eq' + paramsValue.value = { + source: tabsOptions.value[0].key, + value: undefined + } + } else if (termTypeChange) { + const oldValue = isArray(paramsValue.value!.value) ? paramsValue.value!.value[0] : paramsValue.value!.value + const value = arrayParamsKey.includes(e.key) ? [ oldValue, undefined ] : oldValue + paramsValue.value = { + source: paramsValue.value?.source || tabsOptions.value[0].key, + value: value + } } const columns = e.metadata === true ? [e.column] : [] @@ -266,7 +286,7 @@ const termsTypeSelect = (e: { key: string, name: string }) => { const oldValue = isArray(paramsValue.value!.value) ? paramsValue.value!.value[0] : paramsValue.value!.value const value = arrayParamsKey.includes(e.key) ? [ oldValue, undefined ] : oldValue paramsValue.value = { - source: tabsOptions.value[0].key, + source: paramsValue.value?.source || tabsOptions.value[0].key, value: value } emit('update:value', { ...paramsValue }) diff --git a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/Double.vue b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/Double.vue index 40b7b70b..23c25abf 100644 --- a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/Double.vue +++ b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/Double.vue @@ -48,7 +48,7 @@ const label: Record = { const emit = defineEmits() -const myValue = ref(props.value) +const myValue = ref(props.value || [undefined, undefined] as any) const mySource = ref(props.source) const onSelect = (v: any, _label: string, index: number) => { diff --git a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/index.vue b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/index.vue index b76586ee..69b522a8 100644 --- a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/index.vue +++ b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/index.vue @@ -100,7 +100,7 @@ type Emit = { } const props = defineProps({ - ...defaultSetting + ...defaultSetting, }) const emit = defineEmits() diff --git a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/typings.ts b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/typings.ts index fc93e106..35974dbb 100644 --- a/src/views/rule-engine/Scene/Save/components/ParamsDropdown/typings.ts +++ b/src/views/rule-engine/Scene/Save/components/ParamsDropdown/typings.ts @@ -14,7 +14,7 @@ export type TabsOption = { key: string; component: string } -type ValueArrayType = [string, number] +type ValueArrayType = [string, number, undefined] export type ValueType = string | number | undefined | ValueArrayType export const defaultSetting = { diff --git a/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue b/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue index 40f92b8f..5d6663fb 100644 --- a/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue +++ b/src/views/rule-engine/Scene/Save/components/Terms/ParamsItem.vue @@ -133,7 +133,7 @@ const props = defineProps({ type: '', termType: 'eq', value: { - source: 'fixed', + source: 'manual', value: undefined } }) @@ -216,12 +216,20 @@ watch(() => [columnOptions.value, paramsValue.column], () => { const showDouble = computed(() => { const isRange = paramsValue.termType ? arrayParamsKey.includes(paramsValue.termType) : false + const isSourceMetric = paramsValue.value?.source === 'metric' if (metricsCacheOption.value.length) { metricOption.value = metricsCacheOption.value.filter(item => isRange ? item.range : !item.range) } else { metricOption.value = [] } - return isRange && !isMetric.value + + if (isRange) { + if (isMetric.value) { + return !isSourceMetric + } + return true + } + return false }) const mouseover = () => { @@ -237,11 +245,29 @@ const mouseout = () => { } const columnSelect = (option: any) => { + const dataType = option.dataType + const hasTypeChange = dataType !== tabsOptions.value[0].component + let termTypeChange = false + // 如果参数类型未发生变化,则不修改操作符以及值 const termTypes = option.termTypes - paramsValue.termType = termTypes?.length ? termTypes[0].id : 'eq' - paramsValue.value = { - source: tabsOptions.value[0].key, - value: undefined + if (!termTypes.some((item: {id: string}) => paramsValue.termType === item.id)) { // 修改操作符 + termTypeChange = true + paramsValue.termType = termTypes?.length ? termTypes[0].id : 'eq' + } + + if (hasTypeChange) { // 类型发生变化 + paramsValue.termType = termTypes?.length ? termTypes[0].id : 'eq' + paramsValue.value = { + source: tabsOptions.value[0].key, + value: undefined + } + } else if (termTypeChange) { + const oldValue = isArray(paramsValue.value!.value) ? paramsValue.value!.value[0] : paramsValue.value!.value + const value = arrayParamsKey.includes(paramsValue.termType as string) ? [ oldValue, undefined ] : oldValue + paramsValue.value = { + source: paramsValue.value?.source || tabsOptions.value[0].key, + value: value + } } handOptionByColumn(option) emit('update:value', { ...paramsValue }) @@ -254,7 +280,7 @@ const termsTypeSelect = (e: { key: string, name: string }) => { const oldValue = isArray(paramsValue.value!.value) ? paramsValue.value!.value[0] : paramsValue.value!.value const value = arrayParamsKey.includes(e.key) ? [ oldValue, undefined ] : oldValue paramsValue.value = { - source: tabsOptions.value[0].key, + source: paramsValue.value?.source || tabsOptions.value[0].key, value: value } emit('update:value', { ...paramsValue }) @@ -263,7 +289,7 @@ const termsTypeSelect = (e: { key: string, name: string }) => { } -const valueSelect = (_: any, label: string, labelObj: Record) => { +const valueSelect = (v: any, label: string, labelObj: Record) => { emit('update:value', { ...paramsValue }) formItemContext.onFieldChange() formModel.value.options!.when[props.branchName].terms[props.whenName].terms[props.name][2] = labelObj @@ -278,7 +304,7 @@ const termAdd = () => { const terms = { column: undefined, value: { - source: 'fixed', + source: 'manual', value: undefined }, termType: undefined, diff --git a/src/views/rule-engine/Scene/Save/components/Terms/WhenItem.vue b/src/views/rule-engine/Scene/Save/components/Terms/WhenItem.vue index e31f07da..a30e5528 100644 --- a/src/views/rule-engine/Scene/Save/components/Terms/WhenItem.vue +++ b/src/views/rule-engine/Scene/Save/components/Terms/WhenItem.vue @@ -97,7 +97,7 @@ const addWhen = () => { { column: undefined, value: { - source: 'fixed', + source: 'manual', value: undefined }, termType: undefined, diff --git a/yarn.lock b/yarn.lock index 1a3e9019..12ea964d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3700,8 +3700,8 @@ jetlinks-store@^0.0.3: jetlinks-ui-components@^1.0.5: version "1.0.5" - resolved "http://47.108.170.157:9013/jetlinks-ui-components/-/jetlinks-ui-components-1.0.5.tgz#531a7cd5cc4069dc299f0efcc92411a4eee369e7" - integrity sha512-7VHsz5lVG9PlFkHoJvEown4QARuVuasR+jDa9NNQ+pJSHAtHAeiIO1bpVTQKfE5WCyhCKPnN8yIerJLLzmQ1fA== + resolved "http://47.108.170.157:9013/jetlinks-ui-components/-/jetlinks-ui-components-1.0.5.tgz#031a300df4df31a353d738cacee8b4ff630ae2d0" + integrity sha512-SfucQ7LzlE13VdyZsDhrhzwF9Le/NOke5F6UY3bNN1OJiRD/bZMJecGQxWBQGv567lKcV60SOPCMT8ExiZxUgw== dependencies: "@vueuse/core" "^9.12.0" ant-design-vue "^3.2.15"