上传
This commit is contained in:
@@ -7,12 +7,10 @@ import { findIndex } from '@/utils'
|
||||
import { cloneDeep } from 'lodash-es'
|
||||
import { FormSchema } from '@/types/form'
|
||||
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
import { useRoute } from 'vue-router'
|
||||
import cache from '@/plugins/cache'
|
||||
import * as ClueCacheApi from '@/api/clue/clueCache'
|
||||
|
||||
const route = useRoute()
|
||||
const { id: userId } = useUserStore().user //取用户ID
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
@@ -46,7 +44,7 @@ const props = defineProps({
|
||||
}
|
||||
})
|
||||
|
||||
const emit = defineEmits(['search', 'reset'])
|
||||
// const emit = defineEmits(['search', 'reset'])
|
||||
|
||||
const visible = ref(true)
|
||||
|
||||
@@ -80,37 +78,26 @@ const newSchema = computed(() => {
|
||||
return schema
|
||||
})
|
||||
|
||||
function initSearch() {
|
||||
const routeMap = {
|
||||
CluePool: 1,
|
||||
ClueOrder: 2
|
||||
}
|
||||
async function initSearch() {
|
||||
reset()
|
||||
// 1. 先获取缓存
|
||||
const localData = getColumn('Schema')[route.name]
|
||||
// 2. 如果有缓存,使用缓存表头,否则使用默认的所有表头
|
||||
if (localData && localData.length) {
|
||||
usedSchema.value = localData
|
||||
} else {
|
||||
const obj = getColumn('Schema')
|
||||
obj[route.name] = [props.schema[0]]
|
||||
setSchema(obj)
|
||||
usedSchema.value = [props.schema[0]]
|
||||
}
|
||||
checkedSchema.value = usedSchema.value.map((it) => it.field)
|
||||
checkedSchema.value = await ClueCacheApi.getClueCache({
|
||||
settingType: 1,
|
||||
model: routeMap[route.name]
|
||||
})
|
||||
usedSchema.value = props.schema.filter((it) => checkedSchema.value.includes(it.id))
|
||||
}
|
||||
|
||||
function changeSearch() {
|
||||
const obj = getColumn('Schema')
|
||||
obj[route.name] = props.schema.filter((item) => checkedSchema.value.includes(item.field))
|
||||
setSchema(obj)
|
||||
initSearch()
|
||||
}
|
||||
|
||||
// 获取缓存的查询条件
|
||||
function getColumn(name = 'Schema') {
|
||||
return cache.local.get(`${name}-${userId}`) || {}
|
||||
}
|
||||
|
||||
// 设置查询条件缓存
|
||||
function setSchema(val: Array<Object>, name = 'Schema') {
|
||||
cache.local.set(`${name}-${userId}`, val)
|
||||
ClueCacheApi.setClueCache({
|
||||
settingType: 1,
|
||||
model: routeMap[route.name],
|
||||
clueParamId: checkedSchema.value
|
||||
})
|
||||
usedSchema.value = props.schema.filter((it) => checkedSchema.value.includes(it.id))
|
||||
}
|
||||
|
||||
function setSearch() {
|
||||
@@ -121,23 +108,34 @@ const { register, elFormRef, methods } = useForm({
|
||||
model: props.model || {}
|
||||
})
|
||||
|
||||
const search = async () => {
|
||||
await unref(elFormRef)?.validate(async (isValid) => {
|
||||
if (isValid) {
|
||||
const { getFormData } = methods
|
||||
const model = await getFormData()
|
||||
emit('search', model)
|
||||
}
|
||||
})
|
||||
}
|
||||
// const search = async () => {
|
||||
// await unref(elFormRef)?.validate(async (isValid) => {
|
||||
// if (isValid) {
|
||||
// const { getFormData } = methods
|
||||
// const model = await getFormData()
|
||||
// emit('search', model)
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
|
||||
const reset = async () => {
|
||||
unref(elFormRef)?.resetFields()
|
||||
// const { getFormData } = methods
|
||||
// const model = await getFormData()
|
||||
// emit('reset', model)
|
||||
}
|
||||
|
||||
async function getFormModel() {
|
||||
const { getFormData } = methods
|
||||
const model = await getFormData()
|
||||
emit('reset', model)
|
||||
return model
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
getFormModel,
|
||||
reset
|
||||
})
|
||||
|
||||
const bottonButtonStyle = computed(() => {
|
||||
return {
|
||||
textAlign: props.buttomPosition as unknown as 'left' | 'center' | 'right'
|
||||
@@ -168,10 +166,7 @@ initSearch()
|
||||
>
|
||||
<template #action>
|
||||
<div v-if="layout === 'inline'">
|
||||
<ElButton ref="SchemaSetting" @click="setSearch">
|
||||
<!-- <Icon class="mr-5px" icon="ep:setting" /> -->
|
||||
查询设置
|
||||
</ElButton>
|
||||
<ElButton ref="SchemaSetting" @click="setSearch"> 查询设置 </ElButton>
|
||||
<el-popover
|
||||
ref="SettingPop"
|
||||
:virtual-ref="SchemaSetting"
|
||||
@@ -181,7 +176,7 @@ initSearch()
|
||||
virtual-triggering
|
||||
>
|
||||
<el-checkbox-group v-model="checkedSchema" @change="changeSearch">
|
||||
<el-checkbox v-for="item in schema" :key="item.field" :label="item.field">
|
||||
<el-checkbox v-for="item in schema" :key="item.id" :label="item.id">
|
||||
{{ item.label }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
|
||||
Reference in New Issue
Block a user