From b431086c5ec3472a91e5022727810865dfac37f5 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 16 二月 2024 13:31:31 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/components/TableSearch/index.jsx | 79 ++++++++++++++++++++++++++++++++++++++-
zy-asrs-flow/src/pages/system/role/index.jsx | 10 ++++-
zy-asrs-flow/src/pages/system/role/components/edit.jsx | 2
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/HostController.java | 2
4 files changed, 87 insertions(+), 6 deletions(-)
diff --git a/zy-asrs-flow/src/components/TableSearch/index.jsx b/zy-asrs-flow/src/components/TableSearch/index.jsx
index f91197d..110e027 100644
--- a/zy-asrs-flow/src/components/TableSearch/index.jsx
+++ b/zy-asrs-flow/src/components/TableSearch/index.jsx
@@ -1,6 +1,6 @@
import React from 'react';
import { Input, Button, Space, Select, DatePicker } from 'antd';
-import moment from 'moment';
+import Http from '@/utils/http';
const NONE_OPTION = -9999;
@@ -170,5 +170,80 @@
);
}
+const LinkFilter = (props) => {
+ const [currentOption, setCurrentOption] = React.useState();
+ const [options, setOptions] = React.useState([]);
-export { TextFilter, SelectFilter, DatetimeRangeFilter };
\ No newline at end of file
+ const handleSearch = async (value) => {
+ if (value) {
+ const resp = await Http.doPostForm(`api/${props.name}/query`, { condition: value });
+ setOptions(resp.data);
+ } else {
+ setOptions([]);
+ }
+ }
+
+ return (
+ <div style={{ padding: 8 }}>
+ <div>
+ <Select
+ style={{ width: 188, marginBottom: 8, display: 'block' }}
+ placeholder="璇烽�夋嫨"
+ value={currentOption === NONE_OPTION ? undefined : currentOption}
+ onChange={value => {
+ setCurrentOption(value)
+ props.setSelectedKeys(value !== undefined && value !== null ? [value] : []);
+ }}
+ onSearch={handleSearch}
+ showSearch={true}
+ debounceTime={300}
+ >
+ {options.map(item => (
+ <Select.Option key={item.value} value={item.value}>
+ {item.label}
+ </Select.Option>
+ ))}
+ </Select>
+ </div>
+ <Space>
+ <Button
+ type="primary"
+ onClick={() => {
+ props.confirm();
+ if (currentOption === NONE_OPTION) {
+ props.setSearchParam(prevState => {
+ const state = { ...prevState };
+ delete state[props.name];
+ return state;
+ })
+ } else {
+ props.setSearchParam(prevState => ({
+ ...prevState,
+ [props.name]: currentOption
+ }));
+ }
+ props.actionRef.current?.reload();
+ }}
+ size="small"
+ style={{ width: 90 }}
+ >
+ 纭畾
+ </Button>
+ <Button
+ onClick={() => {
+ setCurrentOption(NONE_OPTION)
+ props.setSelectedKeys([]);
+ props.clearFilters();
+ }}
+ size="small"
+ style={{ width: 90 }}
+ >
+ 閲嶇疆
+ </Button>
+ </Space>
+ </div>
+ );
+}
+
+
+export { TextFilter, SelectFilter, DatetimeRangeFilter, LinkFilter };
\ No newline at end of file
diff --git a/zy-asrs-flow/src/pages/system/role/components/edit.jsx b/zy-asrs-flow/src/pages/system/role/components/edit.jsx
index 58405f7..5e28880 100644
--- a/zy-asrs-flow/src/pages/system/role/components/edit.jsx
+++ b/zy-asrs-flow/src/pages/system/role/components/edit.jsx
@@ -101,7 +101,7 @@
showSearch
debounceTime={300}
request={async ({ keyWords }) => {
- const resp = await Http.doPostForm('api/host/query', { condition: keyWords });
+ const resp = await Http.doPostForm('api/hostId/query', { condition: keyWords });
return resp.data;
}}
/>
diff --git a/zy-asrs-flow/src/pages/system/role/index.jsx b/zy-asrs-flow/src/pages/system/role/index.jsx
index b63bca8..a34f947 100644
--- a/zy-asrs-flow/src/pages/system/role/index.jsx
+++ b/zy-asrs-flow/src/pages/system/role/index.jsx
@@ -11,7 +11,7 @@
import { PlusOutlined, ExportOutlined } from '@ant-design/icons';
import Http from '@/utils/http';
import Edit from './components/edit'
-import { TextFilter, SelectFilter, DatetimeRangeFilter } from '@/components/TableSearch'
+import { TextFilter, SelectFilter, DatetimeRangeFilter, LinkFilter } from '@/components/TableSearch'
const handleSave = async (val) => {
const hide = message.loading('姝e湪娣诲姞');
@@ -131,9 +131,15 @@
/>,
},
{
- title: '鍏徃',
+ title: '鏈烘瀯',
dataIndex: 'hostId$',
valueType: 'text',
+ filterDropdown: (props) => <LinkFilter
+ name='hostId'
+ {...props}
+ actionRef={actionRef}
+ setSearchParam={setSearchParam}
+ />,
},
{
title: '鐘舵��',
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/HostController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/HostController.java
index dc4e2f9..99b251d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/HostController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/HostController.java
@@ -28,7 +28,7 @@
private HostService hostService;
@PreAuthorize("hasAuthority('sys:host:list')")
- @PostMapping("/host/query")
+ @PostMapping("/hostId/query")
public R query(@RequestParam(required = false) String condition) {
List<KeyValVo> vos = new ArrayList<>();
LambdaQueryWrapper<Host> wrapper = new LambdaQueryWrapper<>();
--
Gitblit v1.9.1