Merge pull request #141 from APIParkLab/feature/v1.3/mj

fix: get service remote option
This commit is contained in:
Maggie
2024-11-28 18:39:17 +08:00
committed by GitHub
3 changed files with 9 additions and 6 deletions
@@ -105,6 +105,7 @@ export type FilterFormType = {
onFilterFormChange: (form: FilterFormType) => void;
setFormCanSubmit:(canSubmit:boolean)=>void
serviceId?:string
teamId?:string
}
export type FilterFormHandle = {
@@ -119,6 +120,7 @@ export type FilterFormType = {
option:unknown
onShowValueChange?:(value:string)=>void
serviceId?:string
teamId?:string
}
export type RemoteTitleType = {
@@ -9,7 +9,7 @@ import { BasicResponse, PLACEHOLDER, RESPONSE_TIPS, STATUS_CODE } from '@common/
import { v4 as uuidv4 } from 'uuid'
const RemoteFormItem: React.FC<FilterFormItemProps> = (props) =>{
const {value, onChange, disabled,option, onShowValueChange,serviceId} = props
const {value, onChange, disabled,option, onShowValueChange,serviceId, teamId} = props
const [remoteList, setRemoteList] = useState<unknown[]>([])
const [remoteTableColumns, setRemoteTableColumns] = useState<TableColumnsType>([])
const [loading, setLoading] = useState<boolean>(false)
@@ -28,7 +28,7 @@ const RemoteFormItem: React.FC<FilterFormItemProps> = (props) =>{
titles:Array<RemoteTitleType>,
total:number
value:string
}>>(`strategy/${serviceId === undefined ? '' : 'service/'}filter-remote/${option?.name}`,{method:'GET', eoParams:{keyword:searchWord}}).then(response=>{
}>>(`strategy/${serviceId === undefined ? '' : 'service/'}filter-remote/${option?.name}`,{method:'GET', eoParams:{keyword:searchWord,...(serviceId ? {team:teamId, service:serviceId} : {})}}).then(response=>{
const {code,data, msg} = response
if(code === STATUS_CODE.SUCCESS){
setRemoteList(data.list as unknown[])
@@ -156,7 +156,7 @@ const FilterForm = forwardRef<FilterFormHandle,FilterFormProps>(({
selectedOptionNameSet,
disabled,
setFormCanSubmit,
serviceId},ref)=> {
serviceId,teamId},ref)=> {
const [form] = Form.useForm();
const [filterType, setFilterType] = useState<'remote'|'static'|'pattern'>();
const [curOption, setCurOption] = useState<unknown>()
@@ -236,7 +236,7 @@ const FilterForm = forwardRef<FilterFormHandle,FilterFormProps>(({
<Form.Item name="values" label={$t('属性值')} rules={
(filterType === 'pattern' ? ( [{validator:form.getFieldValue('name') === 'ip' ? validateIPorCIDR : validateApiPath}]):[])
}>
{filterType === 'remote' && <RemoteFormItem serviceId={serviceId} option={curOption} disabled={disabled} onShowValueChange={setLabel}/>}
{filterType === 'remote' && <RemoteFormItem serviceId={serviceId} teamId={teamId} option={curOption} disabled={disabled} onShowValueChange={setLabel}/>}
{filterType === 'pattern' && form.getFieldValue('name') !== 'ip' && (
<Input
@@ -27,7 +27,7 @@ const FilterTable: React.FC<FilterTableProps> = ({
const formRef = useRef<FilterFormHandle>(null);
const [formCanSubmit,setFormCanSubmit] = useState(false)
const [selectedOptionNameSet, setSelectedOptionNameSet] = useState<Set<string>>(new Set());
const {serviceId} = useParams<RouterParams>()
const {serviceId,teamId} = useParams<RouterParams>()
const openDrawer = (type: string, data?: FilterFormField) => {
switch (type) {
case 'addFilter':
@@ -68,7 +68,7 @@ const FilterTable: React.FC<FilterTableProps> = ({
}, [value, onChange]);
const getFilterOptions = ()=>{
fetchData<BasicResponse<{options:FilterOptionType[]}>>(`strategy/${serviceId === undefined ? 'global' : 'service'}/filter-options`,{method:'GET'}).then(response=>{
fetchData<BasicResponse<{options:FilterOptionType[]}>>(`strategy/${serviceId === undefined ? 'global' : 'service'}/filter-options`,{method:'GET', eoParams:{...(serviceId ? {team:teamId, service:serviceId} : {})}}).then(response=>{
const {code,data,msg} = response
if(code === STATUS_CODE.SUCCESS){
setFilterOptions(data.options)
@@ -139,6 +139,7 @@ const FilterTable: React.FC<FilterTableProps> = ({
disabled={disabled}
setFormCanSubmit={setFormCanSubmit}
serviceId={serviceId}
teamId={teamId}
/>
</Modal>
</div>