fix: 修复所有模块全局搜索后不重置条件问题 #205

Merged
liushilong merged 1 commits from fix/allSearch into test 1 year ago

5
components.d.ts vendored

@ -23,6 +23,7 @@ declare module 'vue' {
NDivider: typeof import('naive-ui')['NDivider'] NDivider: typeof import('naive-ui')['NDivider']
NDropdown: typeof import('naive-ui')['NDropdown'] NDropdown: typeof import('naive-ui')['NDropdown']
NEllipsis: typeof import('naive-ui')['NEllipsis'] NEllipsis: typeof import('naive-ui')['NEllipsis']
NEmpty: typeof import('naive-ui')['NEmpty']
NForm: typeof import('naive-ui')['NForm'] NForm: typeof import('naive-ui')['NForm']
NFormItem: typeof import('naive-ui')['NFormItem'] NFormItem: typeof import('naive-ui')['NFormItem']
NGi: typeof import('naive-ui')['NGi'] NGi: typeof import('naive-ui')['NGi']
@ -44,7 +45,11 @@ declare module 'vue' {
NSpace: typeof import('naive-ui')['NSpace'] NSpace: typeof import('naive-ui')['NSpace']
NSpin: typeof import('naive-ui')['NSpin'] NSpin: typeof import('naive-ui')['NSpin']
NSwitch: typeof import('naive-ui')['NSwitch'] NSwitch: typeof import('naive-ui')['NSwitch']
NTabPane: typeof import('naive-ui')['NTabPane']
NTabs: typeof import('naive-ui')['NTabs']
NTag: typeof import('naive-ui')['NTag'] NTag: typeof import('naive-ui')['NTag']
NTimeline: typeof import('naive-ui')['NTimeline']
NTimelineItem: typeof import('naive-ui')['NTimelineItem']
NTooltip: typeof import('naive-ui')['NTooltip'] NTooltip: typeof import('naive-ui')['NTooltip']
NUpload: typeof import('naive-ui')['NUpload'] NUpload: typeof import('naive-ui')['NUpload']
NUploadDragger: typeof import('naive-ui')['NUploadDragger'] NUploadDragger: typeof import('naive-ui')['NUploadDragger']

@ -3,6 +3,7 @@ import { nextTick, onMounted, onUnmounted, reactive, ref, toRefs } from 'vue'
import { debounce } from 'lodash-es' import { debounce } from 'lodash-es'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import { deleteSearch, getSearchList, historySearch } from '@/api/search/search' import { deleteSearch, getSearchList, historySearch } from '@/api/search/search'
import { storage } from '@/utils/Storage'
const emit = defineEmits(['close']) const emit = defineEmits(['close'])
@ -73,6 +74,7 @@ function goPath(item, id) {
const desiredObject = item.data.find((item) => { const desiredObject = item.data.find((item) => {
return item.id === id return item.id === id
}) })
storage.set('isSearch', true)
router.push({ name: item.path, query: { id, searchContent: desiredObject.name } }) router.push({ name: item.path, query: { id, searchContent: desiredObject.name } })
emit('close') emit('close')
} }

@ -1,17 +1,40 @@
<script lang="ts" setup> <script lang="ts" setup>
import { computed, unref } from "vue"; import { computed, onBeforeMount, unref } from 'vue'
import { Logo } from "./components/Logo"; import { useRoute, useRouter } from 'vue-router'
import { MainView } from "./components/Main"; import { Logo } from './components/Logo'
import { AsideMenu } from "./components/Menu"; import { MainView } from './components/Main'
import { PageHeader } from "./components/Header"; import { AsideMenu } from './components/Menu'
import { useProjectSetting } from "@/hooks/setting/useProjectSetting"; import { PageHeader } from './components/Header'
import { useProjectSetting } from '@/hooks/setting/useProjectSetting'
import { storage } from '@/utils/Storage'
const { menuSetting } = useProjectSetting(); const router = useRouter()
const route = useRoute()
onBeforeMount(() => {
/**
* 如果刷新则去掉筛选条件
* 1. 如果当前页面路由与上一个页面路由相同时则为刷新
* 2. 防止一直刷新 另外一个判断条件为当前当前路由query不为{}
* 3. 当前页面下执行当前页面的搜索 1条件一定成立
*
* 4. 搜索点击->存storage->跳转页面->onMounted
* ->如果storage为true则不replace 并将storage置false
*/
if (
history.state.back == route.path
&& JSON.stringify(route.query).trim() != '{}'
&& storage.get('isSearch')
) {
storage.set('isSearch', false)
router.replace(route.path)
}
})
const { menuSetting } = useProjectSetting()
const leftMenuWidth = computed(() => { const leftMenuWidth = computed(() => {
const { minMenuWidth } = unref(menuSetting); const { minMenuWidth } = unref(menuSetting)
return minMenuWidth; return minMenuWidth
}); })
</script> </script>
<template> <template>

@ -71,8 +71,7 @@ function close() {
configStore.setSearchValue(searchKeyword.value) configStore.setSearchValue(searchKeyword.value)
finalStore.setSearchValue(searchKeyword.value) finalStore.setSearchValue(searchKeyword.value)
if (searchContent) if (searchContent)
router.push(route.path) router.replace(route.path)
emit('close') emit('close')
} }

@ -10,7 +10,7 @@ import {
unref, unref,
watch, watch,
} from 'vue' } from 'vue'
import { useRoute } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import CustomFieldModal from '../modal/CustomFieldModal.vue' import CustomFieldModal from '../modal/CustomFieldModal.vue'
import AdvanceFilter from '../../home/aside/comp/AdvanceFilter.vue' import AdvanceFilter from '../../home/aside/comp/AdvanceFilter.vue'
import { FilterModalVue } from '../../home/aside/comp/modals' import { FilterModalVue } from '../../home/aside/comp/modals'
@ -26,6 +26,7 @@ import { useConfig } from '@/store/modules/asideConfig'
import type { FilterSearchParam } from '/#/api' import type { FilterSearchParam } from '/#/api'
const route = useRoute() const route = useRoute()
const router = useRouter()
const searchContent = route.query.searchContent as string const searchContent = route.query.searchContent as string
const CustomFieldModalRef = ref(null) const CustomFieldModalRef = ref(null)
const collapse = ref(false) const collapse = ref(false)
@ -78,6 +79,8 @@ function setShowSearch(value: boolean) {
if (!value) { if (!value) {
search.value = '' search.value = ''
taskListRef.value.search('') taskListRef.value.search('')
if (searchContent)
router.replace(route.path)
} }
showSearch.value = value showSearch.value = value
} }

@ -12,7 +12,7 @@ import {
unref, unref,
watch, watch,
} from 'vue' } from 'vue'
import { useRoute } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import CustomFieldModalVue from '../modal/CustomFieldModal.vue' import CustomFieldModalVue from '../modal/CustomFieldModal.vue'
import WorkSheetList from './WorkSheetList.vue' import WorkSheetList from './WorkSheetList.vue'
import { getAllfieldList, getfieldList } from '@/api/home/filter' import { getAllfieldList, getfieldList } from '@/api/home/filter'
@ -24,6 +24,7 @@ import { getViewportOffset } from '@/utils/domUtils'
defineOptions({ name: 'AsideContent' }) defineOptions({ name: 'AsideContent' })
const emit = defineEmits(['ApprovalOver']) const emit = defineEmits(['ApprovalOver'])
const route = useRoute() const route = useRoute()
const router = useRouter()
const searchContent = route.query.searchContent const searchContent = route.query.searchContent
console.log(searchContent) console.log(searchContent)
const collapse = ref(false) const collapse = ref(false)
@ -106,6 +107,7 @@ async function getshowFieldList() {
} }
showFieldList.value.push(item) showFieldList.value.push(item)
} }
return v
}) })
} }
else { else {
@ -120,6 +122,7 @@ async function getshowFieldList() {
} }
showFieldList.value.push(item) showFieldList.value.push(item)
} }
return v
}) })
} }
} }
@ -160,6 +163,9 @@ function setShowSearch(value: boolean) {
if (value === false) { if (value === false) {
(packageListRef.value as any).search('') (packageListRef.value as any).search('')
searchKeyword.value = '' searchKeyword.value = ''
if (!searchContent)
return router.replace(route.path)
nextTick(() => { nextTick(() => {
searchInputRef.value?.focus() searchInputRef.value?.focus()
}) })

Loading…
Cancel
Save