import { formatMessage } from '@/utils/localeUtils.js';  
 | 
import { ref } from 'vue';  
 | 
  
 | 
export default function useTableSearch() {  
 | 
    const searchText = ref('');  
 | 
    const searchedColumn = ref('');  
 | 
      
 | 
    const handleSearch = (selectedKeys, confirm, dataIndex) => {  
 | 
      confirm();  
 | 
      searchText.value = selectedKeys[0];  
 | 
      searchedColumn.value = dataIndex;  
 | 
    };  
 | 
      
 | 
    const handleReset = (clearFilters) => {  
 | 
      clearFilters({  
 | 
        confirm: true,  
 | 
      });  
 | 
      searchText.value = '';  
 | 
    };  
 | 
  
 | 
    function handleResizeColumn(w, col) {  
 | 
      col.width = w;  
 | 
    }  
 | 
      
 | 
    const getColumnSearchProps = (dataIndex) => ({  
 | 
      filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (  
 | 
        <div style="padding: 8px">  
 | 
          <a-input  
 | 
            v-model:value={selectedKeys[0]}  
 | 
            placeholder={formatMessage('common.search.placeholder','请搜索')}  
 | 
            style="width: 188px; margin-bottom: 8px; display: block;"  
 | 
            onChange={(e) => setSelectedKeys(e.target.value ? [e.target.value] : [])}  
 | 
            onPressEnter={() => handleSearch(selectedKeys, confirm, dataIndex)}  
 | 
          />  
 | 
          <a-button  
 | 
            type="primary"  
 | 
            onClick={() => handleSearch(selectedKeys, confirm, dataIndex)}  
 | 
            size="small"  
 | 
            style="width: 90px; margin-right: 8px"  
 | 
          >  
 | 
            {formatMessage('common.search','搜索')}  
 | 
          </a-button>  
 | 
          <a-button onClick={() => handleReset(clearFilters)} size="small" style="width: 90px">  
 | 
            {formatMessage('common.reset','重置')}  
 | 
          </a-button>  
 | 
        </div>  
 | 
      ),  
 | 
      onFilter: (value, record) =>  
 | 
        record[dataIndex]  
 | 
          ? record[dataIndex].toString().toLowerCase().includes(value.toLowerCase())  
 | 
          : '',  
 | 
      resizable: true,  
 | 
    });  
 | 
  
 | 
    return {  
 | 
        searchText,  
 | 
        searchedColumn,  
 | 
        getColumnSearchProps,  
 | 
        handleResizeColumn,  
 | 
      };  
 | 
}  
 | 
  
 |