Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
web-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
web-ci-test
Commits
512cd6e7
提交
512cd6e7
authored
5月 19, 2023
作者:
翁进城
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
filter组件地区选择项开发
上级
eafdb469
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
45 行增加
和
68 行删除
+45
-68
index.ts
components/filter/api/index.ts
+9
-44
index.tsx
components/filter/compoents/regionItem/index.tsx
+33
-23
index.tsx
components/filter/index.tsx
+3
-1
没有找到文件。
components/filter/api/index.ts
浏览文件 @
512cd6e7
...
...
@@ -5,51 +5,15 @@ export interface FilterOptionResp {
name
:
string
}
export
default
{
category
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webProductMall/category'
);
},
brand
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webDevice/brand'
);
},
model
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webDevice/model'
);
},
part
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webProductMall/parts'
);
},
quality
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webProductMall/quality'
);
},
region
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webDevice/getSecondDistrictInfo'
);
},
}
//商城接口
export
const
mallApi
=
{
category
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webProductMall/category'
);
},
brand
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webDevice/brand'
);
},
model
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webDevice/model'
);
},
part
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webProductMall/parts'
);
},
quality
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webProductMall/quality'
);
},
region
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webDevice/getSecondDistrictInfo'
);
},
export
interface
RegionResp
{
"childInfo"
:
RegionResp
[]
|
null
,
"id"
:
number
,
"level"
:
number
,
"name"
:
string
,
"pid"
:
number
}
//设备租赁接口
export
const
leasingApi
=
{
export
default
{
category
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webProductMall/category'
);
},
...
...
@@ -65,7 +29,7 @@ export const leasingApi = {
quality
:
():
Promise
<
Response
<
Array
<
FilterOptionResp
>>>
=>
{
return
request
(
'/pms/webProductMall/quality'
);
},
region
:
():
Promise
<
Response
<
Array
<
FilterOpt
ionResp
>>>
=>
{
region
:
():
Promise
<
Response
<
Array
<
Reg
ionResp
>>>
=>
{
return
request
(
'/pms/webDevice/getSecondDistrictInfo'
);
},
}
\ No newline at end of file
components/filter/compoents/regionItem/index.tsx
浏览文件 @
512cd6e7
import
{
Space
,
Select
}
from
'antd'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
styles
from
'../../index.module.scss'
;
import
api
from
'../../api'
;
import
{
Space
,
Select
}
from
"antd"
;
import
{
useEffect
,
useState
}
from
"react"
;
import
styles
from
"../../index.module.scss"
;
import
api
,
{
RegionResp
}
from
"../../api"
;
export
default
function
RegionItem
(){
const
[
productList
,
setProductList
]
=
useState
(
Array
<
{}
>
);
type
Props
=
{
onChange
:
(
item
:
RegionResp
)
=>
void
;
};
export
default
function
RegionItem
(
props
:
Props
)
{
const
[
provinceList
,
setProvinceList
]
=
useState
<
RegionResp
[]
>
([]);
const
[
cityList
,
setCityList
]
=
useState
<
RegionResp
[]
>
([]);
useEffect
(()
=>
{
setProductList
([{},
{},
{},
{},
{},
{}]);
api
.
region
().
then
((
res
)
=>
{
setProvinceList
(
res
?.
result
||
[]);
});
},
[]);
const
onProvinceChange
=
(
value
:
string
)
=>
{
console
.
log
(
"省"
,
value
);
const
onProvinceChange
=
(
value
:
number
,
item
:
any
)
=>
{
console
.
log
(
"省"
,
value
,
item
);
setCityList
(
item
.
childInfo
||
[]);
};
const
onCityChange
=
(
value
:
string
)
=>
{
const
onCityChange
=
(
value
:
number
,
item
:
any
)
=>
{
console
.
log
(
"市"
,
value
);
props
.
onChange
(
item
);
};
return
(
<
div
className=
{
styles
.
filterItem
}
>
...
...
@@ -27,27 +35,29 @@ export default function RegionItem(){
dropdownMatchSelectWidth=
{
false
}
placeholder=
"选择省"
onChange=
{
onProvinceChange
}
options=
{
[
{
value
:
"jack"
,
label
:
"Jack"
},
{
value
:
"lucy"
,
label
:
"Lucy"
},
{
value
:
"Yiminghe"
,
label
:
"yiminghe"
},
{
value
:
"disabled"
,
label
:
"Disabled"
,
disabled
:
true
},
]
}
options=
{
provinceList
.
map
((
item
)
=>
{
return
{
...
item
,
value
:
item
.
id
,
label
:
item
.
name
,
};
})
}
/>
<
Select
bordered=
{
false
}
dropdownMatchSelectWidth=
{
false
}
placeholder=
"选择市"
onChange=
{
onCityChange
}
options=
{
[
{
value
:
"jack"
,
label
:
"Jack"
},
{
value
:
"lucy"
,
label
:
"Lucy"
},
{
value
:
"Yiminghe"
,
label
:
"yiminghe"
},
{
value
:
"disabled"
,
label
:
"Disabled"
,
disabled
:
true
},
]
}
options=
{
cityList
.
map
((
item
)
=>
{
return
{
...
item
,
value
:
item
.
id
,
label
:
item
.
name
,
};
})
}
/>
</
Space
>
</
div
>
</
div
>
);
);
}
components/filter/index.tsx
浏览文件 @
512cd6e7
...
...
@@ -47,7 +47,9 @@ export default function Filter(props: Props) {
marginBottom
:
18
,
}
}
>
<
RegionItem
></
RegionItem
>
<
RegionItem
onChange=
{
(
item
:
FilterOptionResp
)
=>
onChange
(
item
,
"region"
)
}
></
RegionItem
>
</
div
>
)
}
<
div
className=
{
styles
.
filterWrap
}
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论