<template>
  <j-search
    :target='target'
    :columns='processedColumns'
    :class='props.class'
    style='padding-top: 18px; padding-bottom: 18px;'
    @search='searchSubmit'
  />
</template>

<script setup lang='ts' name='ProSearch'>
import { PropType } from 'vue'
import { JColumnsProps } from 'components/Table/types'
import { saveSearchHistory, getSearchHistory, deleteSearchHistory } from '@/api/comm'

interface Emit {
  (e: 'search', data: any): void
}

const props = defineProps({
  columns: {
    type: Array as PropType<JColumnsProps[]>,
    default: () => [],
    required: true
  },
  type: {
    type: String,
    default: 'terms'
  },
  target: {
    type: String,
    default: '',
    required: true
  },
  class: {
    type: String,
    default: ''
  }
})

const emit = defineEmits<Emit>()

// 处理列配置，为每个带有search的列自动添加defaultValue（如果没有的话）
const processedColumns = computed(() => {
  return props.columns.map(column => {
    // 如果列有search配置但没有defaultValue，则添加一个空的defaultValue
    if (column.search && !column.search.hasOwnProperty('defaultValue')) {
      return {
        ...column,
        search: {
          ...column.search,
          defaultValue: null
        }
      }
    }
    return column
  })
})

/**
 * 提交
 */
const searchSubmit = (data: any) => {
  console.log("搜索--------",data)
  data  = {
    terms:[{
      terms:data
    }]
  }
  emit('search', data)
}

</script>

<style scoped lang='less'>

</style>