From 34724596c3b53b26e97e4e3c6257b646b78a53eb Mon Sep 17 00:00:00 2001 From: raofuzi <2641346316@qq.com> Date: Mon, 1 Apr 2024 23:41:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/asideConfig.ts | 8 ++ src/views/home/aside/Aside.vue | 74 +++++++++++++------ .../home/aside/comp/items/IzCustomlevel.vue | 10 ++- .../home/aside/comp/items/IzCustomname.vue | 10 ++- .../home/aside/comp/items/IzCustomtype.vue | 10 ++- .../home/aside/comp/items/IzCustomtypes.vue | 10 ++- src/views/home/aside/comp/items/IzProduct.vue | 10 ++- src/views/home/aside/comp/items/IzProject.vue | 10 ++- .../home/aside/comp/items/IzProjecttype.vue | 10 ++- src/views/home/aside/comp/items/IzSearch.vue | 10 ++- .../home/aside/comp/items/IzSearchManager.vue | 10 ++- src/views/home/aside/comp/items/IzShow.vue | 10 ++- src/views/home/aside/comp/items/IzStatus.vue | 10 ++- .../home/aside/comp/items/IzVisitcity.vue | 10 ++- src/views/home/aside/comp/items/Izfiled17.vue | 10 ++- src/views/home/aside/comp/items/Izfiled2.vue | 10 ++- src/views/home/aside/comp/items/Izfiled3.vue | 10 ++- src/views/home/aside/comp/items/Izfiled6.vue | 10 ++- src/views/home/aside/comp/items/Izfirm.vue | 10 ++- .../home/aside/comp/items/Iztaskrrom.vue | 12 ++- .../home/aside/comp/items/Iztaskstatus.vue | 10 ++- .../home/aside/comp/items/Izvisitpro.vue | 10 ++- src/views/home/aside/comp/items/Plan.vue | 10 ++- .../home/aside/comp/items/ReportUser.vue | 10 ++- .../home/aside/comp/items/Similarity.vue | 2 +- src/views/home/aside/comp/items/Time.vue | 2 +- .../aside/comp/modals/CustomFilterModal.vue | 67 +++++++++++++++-- 27 files changed, 278 insertions(+), 97 deletions(-) diff --git a/src/store/modules/asideConfig.ts b/src/store/modules/asideConfig.ts index e91108a..81bcf4b 100644 --- a/src/store/modules/asideConfig.ts +++ b/src/store/modules/asideConfig.ts @@ -12,6 +12,7 @@ export interface ConfigState { searchValue: string isAllowDownload: boolean timeNum: number + filterConfig: string[] // 过滤筛选条件 } export const useAsideConfigStore = defineStore({ @@ -23,6 +24,7 @@ export const useAsideConfigStore = defineStore({ searchValue: "", isAllowDownload: true, timeNum: 0, + filterConfig: [], }), getters: { getConfig(): AsideConfig | null { @@ -43,6 +45,9 @@ export const useAsideConfigStore = defineStore({ getTimeNum(): any { return this.timeNum }, + getFilterConfig(): any { + return this.filterConfig + }, }, actions: { setConfig(config: AsideConfig) { @@ -64,6 +69,9 @@ export const useAsideConfigStore = defineStore({ setCustomConfig(value) { this.customConfig = value }, + setFilterConfig(value) { + this.filterConfig = value + }, // 获取系统配置信息 async fetchConfig() { const response = await getConfig() diff --git a/src/views/home/aside/Aside.vue b/src/views/home/aside/Aside.vue index 38906fa..ef19403 100644 --- a/src/views/home/aside/Aside.vue +++ b/src/views/home/aside/Aside.vue @@ -13,12 +13,12 @@ import type { AsideConfig } from '/#/api' import emitter from '@/utils/mitt' import { getFilterList } from '@/api/home/main' import dayjs from 'dayjs' -import { cloneDeep } from 'lodash-es' +import { cloneDeep, isEqual } from 'lodash-es' const configStore = useConfig() // 所有左侧模块的值 -const asideValue: Record = reactive({}) +let asideValue: Record = reactive({}) // 左侧某个模块是否显示: 显示需同时满足系统配置和个人配置 const asideVisible: Partial> = reactive({}) // 当前显示的模块,按照数组顺序显示 @@ -28,13 +28,14 @@ Object.keys(asideMap).forEach((key) => { const entity = asideMap[key] const { defaultValue } = entity asideValue[key] = defaultValue - console.log("asideMap和asideValue", asideValue); }) const filterModalRef = ref(null) const newFilterModalRef = ref(null) const customModalRef = ref(null) const customObjRef = ref(null) // 获取高级筛选获取的值 +const customTempObjRef = ref(null) // 获取高级筛选获取的值(作对比) +const configFilterRef = ref([]) // 获取排序的值 function showModal(modalRef: any) { const modal = unref(modalRef)! as any @@ -44,6 +45,9 @@ function showModal(modalRef: any) { onMounted(() => { nextTick(() => { computeSlideHeight() + let tempAsideValue = cloneDeep(asideValue); + // configStore.setAsideValue(tempAsideValue); + console.log("asideMap和asideValue", tempAsideValue); }) }) @@ -88,7 +92,17 @@ onBeforeMount(async () => { configStore.$subscribe(() => { const config = configStore.getConfig const customConfig = configStore.getCustomConfig - + console.log("config", config); + console.log("customConfig", customConfig); + console.log("customObjRef.value", customObjRef.value); + console.log("customTempObjRef.value", customTempObjRef.value, ); + console.log("getFilterConfig", configStore.getFilterConfig,); + console.log("isEqual(asideValue, configStore.getAsideValue)", isEqual(asideValue, configStore.getAsideValue), ); + console.log("configStore的getAsideValue", configStore.getAsideValue, ); + console.log( "getAsideValue", asideValue); + if((configFilterRef.value.length > 0 && isEqual(configFilterRef.value, configStore.getFilterConfig)) && customObjRef.value && isEqual(customObjRef.value, customTempObjRef.value)) { + return + } if (config == null || customConfig == null) return // console.log("config", config, "customConfig", customConfig); @@ -98,7 +112,11 @@ configStore.$subscribe(() => { showKeys.unshift(...defaultKeys) */ - const showKeys = [...customConfig]; + let sortKeyList: any = []; + configStore.getFilterConfig.map((item: any) => { + sortKeyList.push(item.id); + }); + const showKeys = [...sortKeyList]; Object.keys(config).forEach((key) => { if (key.startsWith('iz') && asideMap[key] !== undefined) @@ -109,16 +127,21 @@ configStore.$subscribe(() => { if(asideMap.hasOwnProperty(key)) { const str = key.toLowerCase() // console.log("customObjRef.value[str]1111111111111", customObjRef.value[str]); - if(str == "izsimilarity" && typeof customObjRef.value[str] == "string") { - customObjRef.value[str] = customObjRef.value[str].split(','); + if(str == "izsimilarity") { + if(typeof customObjRef.value[str] == "string") { + customObjRef.value[str] = customObjRef.value[str].split(','); + } asideValue[key] = customObjRef.value[str];// 赋值 - }else if(str == "izyear" && typeof customObjRef.value[str] == "string") { - let time = customObjRef.value[str].split('-'); - time[0] = (new Date(time[0])).getTime(); - time[1] = (new Date(time[1])).getTime(); - customObjRef.value[str] = time; + console.log("相似度2222222222", asideValue[key]); + }else if(str == "izyear") { + if(typeof customObjRef.value[str] == "string") { + let time = customObjRef.value[str].split('-'); + time[0] = (new Date(time[0])).getTime(); + time[1] = (new Date(time[1])).getTime(); + customObjRef.value[str] = time; + } asideValue[key] = customObjRef.value[str];// 赋值 - console.log("时间2222222222", customObjRef.value[str]); + console.log("时间2222222222", asideValue[key]); }else if((str != 'izsimilarity' && str != "izyear") && customObjRef.value[str]) { console.log("customObjRef.value[str]222222", customObjRef.value[str]); // let list = customObjRef.value[str].split(','); @@ -130,7 +153,11 @@ configStore.$subscribe(() => { // asideMap[str].defaultValue = customObjRef.value[str];// 赋值 } }); - + customTempObjRef.value = customObjRef.value; + console.log("asideValue直接处理后的结果", asideValue); + console.log("customTempObjRef.value", customTempObjRef.value); + let tempobj = cloneDeep(asideValue); + configStore.setAsideValue(tempobj); } // console.log("showKeys", showKeys); const items = showKeys.reduce((acc, key) => { @@ -149,8 +176,9 @@ configStore.$subscribe(() => { return acc } }, []) - console.log("items", items); + console.log("showItems=================================", items); showItems.value = items + configFilterRef.value = configStore.getFilterConfig; }) const asideEnter = ref(false) @@ -198,16 +226,20 @@ function editFilter(filter: any) { function updateComponent(key, e) { console.log("跟新值", key, e); + console.log("tempAsideValue跟新值", configStore.getAsideValue, asideValue); + // let tempAsideValue = configStore.getAsideValue || asideValue; let tempobj = cloneDeep(asideValue); tempobj[key] = e; customObjRef.value = tempobj; - Object.assign(asideValue, tempobj); + // asideValue = Object.assign({}, asideValue, tempobj); + console.log("asideValue跟新值", tempobj); + configStore.setAsideValue(tempobj); } -watch(asideValue, (newVal) => { - console.log("asideValue处理后", newVal); - configStore.setAsideValue(newVal) -}, { deep: true }) +// watch(asideValue, (newVal) => { +// console.log("asideValue处理后", newVal); +// configStore.setAsideValue(newVal) +// }, { deep: true })