Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
web-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
web-ci-test
Commits
1241f57a
提交
1241f57a
authored
5月 19, 2023
作者:
翁进城
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
项目资讯开发
上级
03660a06
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
347 行增加
和
58 行删除
+347
-58
index.ts
pages/projectInfo/api/index.ts
+4
-0
index.ts
pages/projectInfo/components/bids/api/index.ts
+41
-0
index.tsx
pages/projectInfo/components/bids/index.tsx
+36
-13
index.ts
pages/projectInfo/components/cases/api/index.ts
+42
-0
index.tsx
pages/projectInfo/components/cases/index.tsx
+35
-11
index.ts
pages/projectInfo/components/news/api/index.ts
+42
-0
index.tsx
pages/projectInfo/components/news/index.tsx
+47
-7
index.ts
pages/projectInfo/components/requirements/api/index.ts
+42
-0
index.tsx
pages/projectInfo/components/requirements/index.tsx
+49
-18
index.page.tsx
pages/projectInfo/index.page.tsx
+9
-9
没有找到文件。
pages/projectInfo/api/index.ts
0 → 100644
浏览文件 @
1241f57a
export
default
{
}
\ No newline at end of file
pages/projectInfo/components/bids/api/index.ts
0 → 100644
浏览文件 @
1241f57a
import
request
,
{
Response
}
from
'~/api/request'
;
export
interface
ListNewTenderInfoParams
{
cityCode
?:
number
;
date
?:
string
;
districtCode
?:
number
;
pageNo
:
number
;
pageSize
:
number
;
provinceCode
?:
number
;
}
export
interface
ListNewTenderInfoResp
{
pageNo
:
number
;
pageSize
:
number
;
list
:
Item
[];
totalCount
:
number
;
totalPage
:
number
;
}
export
interface
Item
{
id
:
number
;
tenderNewsId
:
number
;
tenderInfoNo
:
string
;
tenderContent
:
string
;
tenderPrice
:
number
;
createTime
:
string
;
apply
:
0
|
1
;
}
export
default
{
/**
* 招投标列表
* @param params
* @returns
*/
listNewTenderInfo
(
params
:
ListNewTenderInfoParams
,
options
=
{}):
Promise
<
Response
<
ListNewTenderInfoResp
>>
{
return
request
(
'/release/tender/listNewTenderInfo'
,
'post'
,
params
,
options
);
}
}
\ No newline at end of file
pages/projectInfo/components/bids/index.tsx
浏览文件 @
1241f57a
import
{
Button
}
from
"antd"
;
import
{
useState
,
useEffect
}
from
"react"
;
import
api
,
{
Item
}
from
"./api"
;
import
styles
from
"./index.module.scss"
;
const
list
=
[
{
isApply
:
false
,
},
{
isApply
:
true
,
},
];
export
default
function
Bids
()
{
const
[
list
,
setList
]
=
useState
<
Array
<
Item
>>
([]);
const
[
pageParams
,
setPageParams
]
=
useState
({
pageNo
:
1
,
pageSize
:
5
,
});
const
[
count
,
setCount
]
=
useState
(
0
);
const
[
abort
,
setAbort
]
=
useState
<
AbortController
|
null
>
(
null
);
useEffect
(()
=>
{
//中断前一次请求
abort
?.
abort
();
setAbort
(
new
AbortController
());
},
[
pageParams
]);
useEffect
(()
=>
{
api
.
listNewTenderInfo
(
{
...
pageParams
,
},
{
signal
:
abort
?.
signal
,
}
)
.
then
((
res
)
=>
{
setList
(
res
.
result
?.
list
||
[]);
setCount
(
res
.
result
?.
totalCount
||
0
);
});
},
[
abort
]);
export
default
function
requirements
()
{
return
(
<
div
className=
{
styles
.
bids
}
>
{
list
.
map
((
item
,
i
)
=>
{
return
(
<
div
className=
{
styles
.
item
}
key=
{
i
}
>
<
div
className=
{
styles
.
info
}
>
<
div
className=
{
styles
.
title
}
>
项目需求:
电力巡检需要5名飞手
</
div
>
<
div
className=
{
styles
.
title
}
>
项目需求:
{
item
.
tenderContent
}
</
div
>
</
div
>
{
item
.
isA
pply
?
(
{
item
.
a
pply
?
(
<
Button
type=
"primary"
disabled
className=
{
`${styles.btn} ${styles.disabled}`
}
>
<
div
className=
{
styles
.
text1
}
>
155W
</
div
>
<
div
className=
{
styles
.
text1
}
>
{
item
.
tenderPrice
}
元
</
div
>
<
div
className=
{
styles
.
text2
}
>
已申请
</
div
>
</
Button
>
)
:
(
<
Button
type=
"primary"
className=
{
styles
.
btn
}
>
<
div
className=
{
styles
.
text1
}
>
155W
</
div
>
<
div
className=
{
styles
.
text1
}
>
{
item
.
tenderPrice
}
元
</
div
>
<
div
className=
{
styles
.
text2
}
>
申请合作
</
div
>
</
Button
>
)
}
...
...
pages/projectInfo/components/cases/api/index.ts
0 → 100644
浏览文件 @
1241f57a
import
request
,
{
Response
}
from
'~/api/request'
;
export
interface
ListCasePageParams
{
cityCode
?:
number
;
date
?:
string
;
districtCode
?:
number
;
pageNo
:
number
;
pageSize
:
number
;
provinceCode
?:
number
;
}
export
interface
ListCasePageResp
{
pageNo
:
number
;
pageSize
:
number
;
list
:
Item
[];
totalCount
:
number
;
totalPage
:
number
;
}
export
interface
Item
{
id
:
number
;
newsTitle
:
string
;
newsAuthor
:
string
;
userAccountId
:
number
;
surfaceImg
:
string
;
newsContents
:
string
;
createTime
:
string
;
updateTime
:
string
;
isApply
:
0
|
1
}
export
default
{
/**
* 案例列表
* @param params
* @returns
*/
listCasePage
(
params
:
ListCasePageParams
,
options
=
{}):
Promise
<
Response
<
ListCasePageResp
>>
{
return
request
(
'/release/industry-case/listCasePage'
,
'post'
,
params
,
options
);
}
}
\ No newline at end of file
pages/projectInfo/components/cases/index.tsx
浏览文件 @
1241f57a
import
{
Button
}
from
"antd"
;
import
{
useState
,
useEffect
}
from
"react"
;
import
api
,
{
Item
}
from
"./api"
;
import
styles
from
"./index.module.scss"
;
const
list
=
[
...
...
@@ -10,24 +12,46 @@ const list = [
},
];
export
default
function
requirements
()
{
export
default
function
Cases
()
{
const
[
list
,
setList
]
=
useState
<
Array
<
Item
>>
([]);
const
[
pageParams
,
setPageParams
]
=
useState
({
pageNo
:
1
,
pageSize
:
5
,
});
const
[
count
,
setCount
]
=
useState
(
0
);
const
[
abort
,
setAbort
]
=
useState
<
AbortController
|
null
>
(
null
);
useEffect
(()
=>
{
//中断前一次请求
abort
?.
abort
();
setAbort
(
new
AbortController
());
},
[
pageParams
]);
useEffect
(()
=>
{
api
.
listCasePage
(
{
...
pageParams
,
},
{
signal
:
abort
?.
signal
,
}
)
.
then
((
res
)
=>
{
setList
(
res
.
result
?.
list
||
[]);
setCount
(
res
.
result
?.
totalCount
||
0
);
});
},
[
abort
]);
return
(
<
div
className=
{
styles
.
casas
}
>
{
list
.
map
((
item
,
i
)
=>
{
return
(
<
div
className=
{
styles
.
item
}
key=
{
i
}
>
<
div
className=
{
styles
.
info
}
>
<
div
className=
{
styles
.
title
}
>
项目需求:电力巡检需要5名飞手
</
div
>
<
div
className=
{
styles
.
title
}
>
{
item
.
newsTitle
}
</
div
>
</
div
>
{
item
.
isApply
?
(
<
Button
disabled
className=
{
styles
.
btnDisabled
}
>
已申请
</
Button
>
)
:
(
<
Button
className=
{
styles
.
btn
}
>
申请合作
</
Button
>
)
}
<
Button
className=
{
styles
.
btn
}
>
查看案例
</
Button
>
</
div
>
);
})
}
...
...
pages/projectInfo/components/news/api/index.ts
0 → 100644
浏览文件 @
1241f57a
import
request
,
{
Response
}
from
'~/api/request'
;
export
interface
ListNewsPageParams
{
cityCode
?:
number
;
date
?:
string
;
districtCode
?:
number
;
pageNo
:
number
;
pageSize
:
number
;
provinceCode
?:
number
;
}
export
interface
ListNewsPageResp
{
pageNo
:
number
;
pageSize
:
number
;
list
:
Item
[];
totalCount
:
number
;
totalPage
:
number
;
}
export
interface
Item
{
id
:
number
;
newsTitle
:
string
;
newsAuthor
:
string
;
userAccountId
:
number
;
surfaceImg
:
string
;
newsContents
:
string
;
createTime
:
string
;
updateTime
?:
any
;
}
export
default
{
/**
* 新闻列表
* @param params
* @returns
*/
listNewsPage
(
params
:
ListNewsPageParams
,
options
=
{}):
Promise
<
Response
<
ListNewsPageResp
>>
{
return
request
(
'/release/industry-news/listNewsPage'
,
'post'
,
params
,
options
);
}
}
\ No newline at end of file
pages/projectInfo/components/news/index.tsx
浏览文件 @
1241f57a
...
...
@@ -2,8 +2,40 @@ import { RightOutlined } from "@ant-design/icons";
import
{
Col
,
Row
}
from
"antd"
;
import
styles
from
"./index.module.scss"
;
import
Image
from
"next/image"
;
import
{
useState
,
useEffect
}
from
"react"
;
import
api
,
{
Item
}
from
"./api"
;
export
default
function
News
()
{
const
[
rightList
,
setRightList
]
=
useState
<
Array
<
Item
>>
([]);
const
[
pageParams
,
setPageParams
]
=
useState
({
pageNo
:
1
,
pageSize
:
5
,
});
const
[
count
,
setCount
]
=
useState
(
0
);
const
[
abort
,
setAbort
]
=
useState
<
AbortController
|
null
>
(
null
);
useEffect
(()
=>
{
//中断前一次请求
abort
?.
abort
();
setAbort
(
new
AbortController
());
},
[
pageParams
]);
useEffect
(()
=>
{
api
.
listNewsPage
(
{
...
pageParams
,
},
{
signal
:
abort
?.
signal
,
}
)
.
then
((
res
)
=>
{
setRightList
(
res
.
result
?.
list
||
[]);
setCount
(
res
.
result
?.
totalCount
||
0
);
});
},
[
abort
]);
export
default
function
requirements
()
{
return
(
<
Row
justify=
"space-between"
>
<
Col
className=
{
styles
.
new
}
>
...
...
@@ -20,12 +52,20 @@ export default function requirements() {
<
RightOutlined
style=
{
{
fontSize
:
16
}
}
/>
</
div
>
<
ul
className=
{
styles
.
newList
}
>
<
li
className=
{
styles
.
newItem
}
>
<
div
className=
{
styles
.
newItemTitle
}
>
中国超音速无人机雨燕试飞成功好棒呀
</
div
>
<
Image
className=
{
styles
.
newItemImg
}
src=
""
alt=
""
></
Image
>
</
li
>
{
rightList
.
map
((
item
)
=>
{
return
(
<
li
className=
{
styles
.
newItem
}
>
<
div
className=
{
styles
.
newItemTitle
}
>
{
item
.
newsTitle
}
</
div
>
<
Image
className=
{
styles
.
newItemImg
}
src=
{
item
.
surfaceImg
}
alt=
""
width=
{
90
}
height=
{
60
}
></
Image
>
</
li
>
);
})
}
</
ul
>
</
Col
>
</
Row
>
...
...
pages/projectInfo/components/requirements/api/index.ts
0 → 100644
浏览文件 @
1241f57a
import
request
,
{
Response
}
from
'~/api/request'
;
export
interface
ListPublishPageParams
{
cityCode
?:
number
;
date
?:
string
;
districtCode
?:
number
;
pageNo
:
number
;
pageSize
:
number
;
provinceCode
?:
number
;
}
export
interface
ListPublishPageResp
{
pageNo
:
number
;
pageSize
:
number
;
list
:
Item
[];
totalCount
:
number
;
totalPage
:
number
;
}
export
interface
Item
{
id
:
number
;
requirementTypeId
:
number
;
userAccountId
:
number
;
publishName
:
string
;
publishPhone
:
string
;
requireDescription
:
string
;
solved
?:
0
|
1
;
createTime
:
string
;
updateTime
?:
string
;
}
export
default
{
/**
* 需求发布列表
* @param params
* @returns
*/
listPublishPage
(
params
:
ListPublishPageParams
,
options
=
{}):
Promise
<
Response
<
ListPublishPageResp
>>
{
return
request
(
'/release/requirements/listPublishPage'
,
'post'
,
params
,
options
);
}
}
\ No newline at end of file
pages/projectInfo/components/requirements/index.tsx
浏览文件 @
1241f57a
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
api
,
{
Item
}
from
"./api"
;
import
styles
from
'./index.module.scss'
;
export
default
function
requirements
(){
export
default
function
Requirements
(){
const
[
list
,
setList
]
=
useState
<
Array
<
Item
>>
([]);
const
[
pageParams
,
setPageParams
]
=
useState
({
pageNo
:
1
,
pageSize
:
5
,
});
const
[
count
,
setCount
]
=
useState
(
0
);
const
[
abort
,
setAbort
]
=
useState
<
AbortController
|
null
>
(
null
);
useEffect
(()
=>
{
//中断前一次请求
abort
?.
abort
();
setAbort
(
new
AbortController
());
},
[
pageParams
]);
useEffect
(()
=>
{
api
.
listPublishPage
(
{
...
pageParams
,
},
{
signal
:
abort
?.
signal
,
}
)
.
then
((
res
)
=>
{
setList
(
res
.
result
?.
list
||
[]);
setCount
(
res
.
result
?.
totalCount
||
0
);
});
},
[
abort
]);
return
(
<
div
className=
{
styles
.
requirements
}
>
<
div
className=
{
styles
.
item
}
>
<
div
className=
{
styles
.
logo
}
></
div
>
<
div
className=
{
styles
.
info
}
>
<
div
className=
{
styles
.
title
}
>
项目需求:电力巡检需要5名飞手
</
div
>
<
div
className=
{
styles
.
desc
}
>
具体需求:电力巡检需要5名飞手,山东临沂
</
div
>
</
div
>
</
div
>
<
div
className=
{
`${styles.item} ${styles.noResolve}`
}
>
<
div
className=
{
styles
.
logo
}
></
div
>
<
div
className=
{
styles
.
info
}
>
<
div
className=
{
styles
.
title
}
>
项目需求:电力巡检需要5名飞手
</
div
>
<
div
className=
{
styles
.
desc
}
>
具体需求:电力巡检需要5名飞手,山东临沂
{
list
.
map
(
item
=>
{
return
(
<
div
className=
{
`${styles.item} ${!item.solved && styles.noResolve}`
}
key=
{
item
.
id
}
>
<
div
className=
{
styles
.
logo
}
></
div
>
<
div
className=
{
styles
.
info
}
>
<
div
className=
{
styles
.
title
}
>
项目需求:电力巡检需要5名飞手
</
div
>
<
div
className=
{
styles
.
desc
}
>
具体需求:
{
item
.
requireDescription
}
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
);
})
}
</
div
>
);
}
\ No newline at end of file
pages/projectInfo/index.page.tsx
浏览文件 @
1241f57a
...
...
@@ -9,10 +9,10 @@ import {
}
from
"antd"
;
import
styles
from
"./index.module.scss"
;
import
Layout
from
"~/components/layout"
;
import
r
equirements
from
"./components/requirements"
;
//项目需求
import
b
ids
from
"./components/bids"
;
//招投标项目
import
c
ases
from
"./components/cases"
;
//业务案例
import
n
ews
from
"./components/news"
;
//行业新闻
import
R
equirements
from
"./components/requirements"
;
//项目需求
import
B
ids
from
"./components/bids"
;
//招投标项目
import
C
ases
from
"./components/cases"
;
//业务案例
import
N
ews
from
"./components/news"
;
//行业新闻
interface
Option
{
value
:
string
|
number
;
...
...
@@ -84,19 +84,19 @@ const items = ["项目需求", "招投标项目", "业务案例", "行业新闻"
switch
(
value
)
{
case
"项目需求"
:
children
=
requirements
()
;
children
=
<
Requirements
></
Requirements
>
;
break
;
case
"招投标项目"
:
children
=
bids
()
;
children
=
<
Bids
></
Bids
>
;
break
;
case
"业务案例"
:
children
=
cases
()
;
children
=
<
Cases
></
Cases
>
;
break
;
case
"行业新闻"
:
children
=
news
()
;
children
=
<
News
></
News
>
;
break
;
}
return
{
...
...
@@ -107,7 +107,7 @@ const items = ["项目需求", "招投标项目", "业务案例", "行业新闻"
}
);
export
default
function
Mall
()
{
export
default
function
ProjectInfo
()
{
return
(
<
Layout
layoutStyle=
{
{
backgroundColor
:
"#fff"
}
}
>
<
div
style=
{
{
backgroundColor
:
"#fff"
,
minHeight
:
820
}
}
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论