Commit 94ee69de authored by 田翔's avatar 田翔

fix: 增加精确搜索

parent a47e536b
{ {
"name": "panda-xform", "name": "panda-xform",
"version": "5.9.28", "version": "5.9.29",
"description": "5.9.28 BUG修复", "description": "5.9.29 增加精确搜索",
"keywords": [ "keywords": [
"panda-xform" "panda-xform"
], ],
......
import React, { useMemo, useState, forwardRef, useImperativeHandle } from 'react' import React, { useMemo, useState, forwardRef, useImperativeHandle, useEffect } from 'react'
import { Row, DatePicker, Select, Button, Input, message, Upload, Dropdown, Menu, Form } from 'antd' import { Row, DatePicker, Select, Button, Input, message, Upload, Dropdown, Menu, Form, Typography, Space } from 'antd'
import 'dayjs/locale/zh-cn' import 'dayjs/locale/zh-cn'
import locale from 'antd/es/date-picker/locale/zh_CN' import locale from 'antd/es/date-picker/locale/zh_CN'
import { PlusOutlined, DeleteOutlined, ImportOutlined, ExportOutlined, QuestionCircleOutlined, EditOutlined, DownOutlined } from '@ant-design/icons' import { PlusOutlined, DeleteOutlined, ImportOutlined, ExportOutlined, QuestionCircleOutlined, EditOutlined, DownOutlined } from '@ant-design/icons'
...@@ -17,9 +17,10 @@ const SearchGroup = forwardRef((props, ref) => { ...@@ -17,9 +17,10 @@ const SearchGroup = forwardRef((props, ref) => {
getQueryInfo, getQueryInfo,
})) }))
const { accountName, config, notUse, checkName, btnsClick, keys } = props const { accountName, config, notUse, checkName, btnsClick, keys, fieldSearch } = props
const { enableBatchOperation, enableImportExport, exportTemplateName, enablePrint, enableQuickSearch, enableTimeFilter, parent, accountFieids } = config const { enableBatchOperation, enableImportExport, exportTemplateName, enablePrint, enableQuickSearch, enableTimeFilter, parent, accountFieids } = config
const [form] = Form.useForm() const [form] = Form.useForm()
const [searchLabel, setSearchLabel] = useState('快捷搜索')
const [dateArray, setDateArray] = useState([]) const [dateArray, setDateArray] = useState([])
const [formatterStr, setFormatterStr] = useState('YYYY-MM-DD HH:mm:ss') const [formatterStr, setFormatterStr] = useState('YYYY-MM-DD HH:mm:ss')
const [queryInfo, setQueryInfo] = useState({ info: '', timeFrom: '', timeTo: '' }) const [queryInfo, setQueryInfo] = useState({ info: '', timeFrom: '', timeTo: '' })
...@@ -279,7 +280,7 @@ const SearchGroup = forwardRef((props, ref) => { ...@@ -279,7 +280,7 @@ const SearchGroup = forwardRef((props, ref) => {
</Button> </Button>
), ),
key: '导出单据', key: '导出单据',
}: null } : null
] ]
const onSearch = e => { const onSearch = e => {
...@@ -297,16 +298,65 @@ const SearchGroup = forwardRef((props, ref) => { ...@@ -297,16 +298,65 @@ const SearchGroup = forwardRef((props, ref) => {
let params = {}; let params = {};
params.timeFrom = (data.time && data.time[0].format('YYYY-MM-DD HH:mm:ss')) || ''; params.timeFrom = (data.time && data.time[0].format('YYYY-MM-DD HH:mm:ss')) || '';
params.timeTo = (data.time && data.time[1].format('YYYY-MM-DD HH:mm:ss')) || ''; params.timeTo = (data.time && data.time[1].format('YYYY-MM-DD HH:mm:ss')) || '';
if (searchLabel === '快捷搜索') {
params.info = data.info; params.info = data.info;
params.queryForm = []
} else {
params.queryForm = [{ field: searchLabel, type: '模糊查询', value: data.info }]
params.info = ''
}
props && props.onChange(params); props && props.onChange(params);
return params; return params;
}; };
const reset = () => { const reset = () => {
form.resetFields() form.resetFields()
setSearchLabel('快捷搜索')
btnsClick({ type: '重置' }) btnsClick({ type: '重置' })
} }
const getSearchLabel = () => {
const menuClick = (value) => {
setSearchLabel(value.key)
}
const menu = (
<Menu onClick={menuClick}>
<Menu.Item key={'快捷搜索'}>{'快捷搜索'}</Menu.Item>
{
accountFieids.map(v => {
if (v.likeSearch) {
return <Menu.Item key={v.fieldName}>{v.fieldName}</Menu.Item>
}
return null
})
}
</Menu>
)
if (fieldSearch) {
return (
<div>
<Dropdown
overlay={menu}
>
<Space>
{searchLabel}
<DownOutlined />
</Space>
</Dropdown>
</div>
)
}
return '快捷搜索'
}
useEffect(() => {
setSearchLabel('快捷搜索')
}, [accountName])
return ( return (
<Row className={styles.controlRow}> <Row className={styles.controlRow}>
<Form layout={'inline'} form={form} onValuesChange={onValuesChange}> <Form layout={'inline'} form={form} onValuesChange={onValuesChange}>
...@@ -327,7 +377,11 @@ const SearchGroup = forwardRef((props, ref) => { ...@@ -327,7 +377,11 @@ const SearchGroup = forwardRef((props, ref) => {
} }
{ {
searchShow ? ( searchShow ? (
<Form.Item label={'快捷搜索'} name="info" style={{ marginBottom: 0 }}> <Form.Item
label={getSearchLabel()}
name="info"
style={{ marginBottom: 0 }}
>
<Search <Search
size="middle" size="middle"
style={{ style={{
...@@ -397,6 +451,7 @@ const SearchGroup = forwardRef((props, ref) => { ...@@ -397,6 +451,7 @@ const SearchGroup = forwardRef((props, ref) => {
</div> </div>
</Row> </Row>
) )
}) })
export default SearchGroup export default SearchGroup
...@@ -48,7 +48,7 @@ const Account = (props, ref) => { ...@@ -48,7 +48,7 @@ const Account = (props, ref) => {
getTableColumns, getTableColumns,
})); }));
const { accountName, parentConfig, notUse, superAccount, siteLevel } = props; const { accountName, parentConfig, notUse, superAccount, siteLevel, fieldSearch } = props;
const userID = window?.globalConfig?.userInfo?.OID || 1; const userID = window?.globalConfig?.userInfo?.OID || 1;
const initParams = { const initParams = {
user: userID, user: userID,
...@@ -62,6 +62,8 @@ const Account = (props, ref) => { ...@@ -62,6 +62,8 @@ const Account = (props, ref) => {
timeFrom: '', timeFrom: '',
timeTo: '', timeTo: '',
info: '', info: '',
queryForm: [],
queryTable: [],
queryWheres: [], queryWheres: [],
}; };
const [treeShow, setTreeShow] = useState(true); const [treeShow, setTreeShow] = useState(true);
...@@ -317,11 +319,12 @@ const Account = (props, ref) => { ...@@ -317,11 +319,12 @@ const Account = (props, ref) => {
const getDataSource = async (param = {}) => { const getDataSource = async (param = {}) => {
setLoading(true); setLoading(true);
const { code, data, msg } = await GetAccountPageList({ ...params, ...param }); let totalParmas = { ...params, ...param }
const { code, data, msg } = await GetAccountPageList({ ...totalParmas, queryWheres: [...totalParmas.queryForm, ...totalParmas.queryTable] });
if (code === 0) { if (code === 0) {
setDataSource(isJson(data.jsonData) ? JSON.parse(data.jsonData) : []); setDataSource(isJson(data.jsonData) ? JSON.parse(data.jsonData) : []);
setDataList(data.list); setDataList(data.list);
setParams({ ...params, ...param, total: data.totalCount, pageIndex: data.pageIndex, pageSize: data.pageSize }); setParams({ ...totalParmas, total: data.totalCount, pageIndex: data.pageIndex, pageSize: data.pageSize });
} else { } else {
setDataSource([]); setDataSource([]);
setDataList([]); setDataList([]);
...@@ -344,7 +347,7 @@ const Account = (props, ref) => { ...@@ -344,7 +347,7 @@ const Account = (props, ref) => {
let param = { let param = {
sortFields: sorter.order ? sorter.field : '录入时间', sortFields: sorter.order ? sorter.field : '录入时间',
direction: sorter.order !== 'ascend' ? 'desc' : 'asc', direction: sorter.order !== 'ascend' ? 'desc' : 'asc',
queryWheres, queryTable: queryWheres,
}; };
setParams({ ...params, ...param }); setParams({ ...params, ...param });
getDataSource(param); getDataSource(param);
...@@ -555,9 +558,10 @@ const Account = (props, ref) => { ...@@ -555,9 +558,10 @@ const Account = (props, ref) => {
onChange={search} onChange={search}
btnsClick={btnsClick} btnsClick={btnsClick}
keys={keys} keys={keys}
accountName={accountName} accountName={params.accountName}
config={config} config={config}
notUse={notUse} notUse={notUse}
fieldSearch={fieldSearch}
/> />
</div> </div>
<div className={styles.bottom}> <div className={styles.bottom}>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment