|
@@ -39,6 +39,7 @@ import companyItem from './components/companyItem'
|
|
|
import MPagination from '@/components/CtPagination'
|
|
|
import cityCascadeSelect from '@/views/recruit/personal/position/components/conditionFilter/cityCascadeSelect.vue'
|
|
|
// F:\work\menduner\src\views\recruit\personal\position\components\conditionFilter\cityCascadeSelect.vue
|
|
|
+import Snackbar from '@/plugins/snackbar'
|
|
|
|
|
|
const route = useRoute()
|
|
|
const router = useRouter()
|
|
@@ -53,6 +54,7 @@ const pages = ref({
|
|
|
const query = ref({})
|
|
|
|
|
|
const dealRouteQuery = (data) => {
|
|
|
+ data.date = new Date().getTime() // 用于前端刷新路由参数
|
|
|
const arr = Object.keys(data).map(e => {
|
|
|
if (data[e]) {
|
|
|
return Array.isArray(data[e]) ? `${e}=${data[e].join('_')}` : `${e}=${data[e]}`
|
|
@@ -63,11 +65,14 @@ const dealRouteQuery = (data) => {
|
|
|
if (str) router.push(`${route.path}?${str}`)
|
|
|
}
|
|
|
|
|
|
-const content = ref(route.query.name || '')
|
|
|
+const content = ref(route?.query?.name ? route.query?.name.includes('&') ? decodeURIComponent(route.query.name) : route.query.name : '')
|
|
|
+
|
|
|
// 搜索
|
|
|
const handleSearch = async (val, key) => {
|
|
|
if (!val && key !== 'name') return
|
|
|
+ if (key === 'name' && val === '&') return Snackbar.warning('请输入要查询的公司名称!')
|
|
|
if (key === 'name') content.value = val
|
|
|
+ if (val?.includes('&')) val = encodeURIComponent(val)
|
|
|
pages.value.pageNo = 1
|
|
|
query.value[key] = val
|
|
|
dealRouteQuery(query.value)
|
|
@@ -89,6 +94,7 @@ const inputChange = async({ idName: key, values }) => { // areaIds
|
|
|
const noParams = ref(true)
|
|
|
const getCompanyData = async () => {
|
|
|
noParams.value = true
|
|
|
+ if (query.value?.date) delete query.value.date
|
|
|
Object.keys(query.value).forEach(key => {
|
|
|
// 没有筛选条件不请求数据
|
|
|
if (query.value[key]) noParams.value = false
|
|
@@ -98,7 +104,9 @@ const getCompanyData = async () => {
|
|
|
total.value = 0
|
|
|
return
|
|
|
}
|
|
|
- const { list, total: number } = await getEnterpriseSearch({ ...query.value, ...pages.value })
|
|
|
+ const params = { ...query.value, ...pages.value }
|
|
|
+ if (params?.name) params.name = decodeURIComponent(params.name)
|
|
|
+ const { list, total: number } = await getEnterpriseSearch(params)
|
|
|
if (!list.length) {
|
|
|
items.value = []
|
|
|
total.value = 0
|
|
@@ -115,7 +123,10 @@ const getCompanyData = async () => {
|
|
|
const handleClear = () => {
|
|
|
clear.value = true
|
|
|
if (query.value.name || query.value.areaIds?.length) {
|
|
|
- dealRouteQuery(query.value)
|
|
|
+ dealRouteQuery({
|
|
|
+ ...(query.value.name && { name: query.value.name }),
|
|
|
+ ...(query.value.areaIds?.length && { areaIds: query.value.areaIds })
|
|
|
+ })
|
|
|
// getCompanyData()
|
|
|
} else {
|
|
|
router.push(route.path)
|
|
@@ -129,6 +140,7 @@ if (Object.keys(route.query).length) {
|
|
|
const objData = {}
|
|
|
Object.keys(route.query).map(e => {
|
|
|
if (e === 'areaIds') return objData[e] = route.query[e].split('_')
|
|
|
+ if (e === 'name') return objData[e] = route.query[e].includes('&') ? encodeURIComponent(route.query[e]) : route.query[e]
|
|
|
else objData[e] = route.query[e]
|
|
|
})
|
|
|
if (Object.keys(objData).length) {
|