提交 26337165 作者: 翁进城

项目资讯补充

上级 08c2d1a8
...@@ -65,7 +65,7 @@ export default function Bids(props: Props) { ...@@ -65,7 +65,7 @@ export default function Bids(props: Props) {
<div className={styles.item} key={item.id}> <div className={styles.item} key={item.id}>
<div className={styles.info}> <div className={styles.info}>
<div className={styles.title}> <div className={styles.title}>
项目需求:{item.tenderContent} {item.tenderContent}
</div> </div>
</div> </div>
{item.apply ? ( {item.apply ? (
......
...@@ -29,6 +29,12 @@ export interface Item { ...@@ -29,6 +29,12 @@ export interface Item {
updateTime?: string; updateTime?: string;
} }
export interface SolveRequireParams {
requirementsInfoId: number, //需求id
userAccountId: number //用户id
}
export default { export default {
/** /**
* 需求发布列表 * 需求发布列表
...@@ -37,5 +43,13 @@ export default { ...@@ -37,5 +43,13 @@ export default {
*/ */
listPublishPage(params: ListPublishPageParams, options = {}): Promise<Response<ListPublishPageResp>> { listPublishPage(params: ListPublishPageParams, options = {}): Promise<Response<ListPublishPageResp>> {
return request('/release/requirements/listPublishPage', 'post', params, options); return request('/release/requirements/listPublishPage', 'post', params, options);
},
/**
* 需求已解决
* @param params
* @returns
*/
solveRequire(params: SolveRequireParams): Promise<Response<null>>{
return request('/release/requirements/solveRequire', 'get', params);
} }
} }
\ No newline at end of file
import { Button, Empty, Pagination, Spin } from "antd"; import { Button, Empty, Pagination, Popconfirm, Spin } from "antd";
import router from "next/router"; import router from "next/router";
import React, { useState, useEffect } from "react"; import React, { useState, useEffect } from "react";
import api, { Item } from "./api"; import api, { Item } from "./api";
...@@ -22,12 +22,18 @@ export default function Requirements(props: Props) { ...@@ -22,12 +22,18 @@ export default function Requirements(props: Props) {
}); });
const [count, setCount] = useState(0); const [count, setCount] = useState(0);
const [abort, setAbort] = useState<AbortController | null>(null); const [abort, setAbort] = useState<AbortController | null>(null);
const [userId, setUserId] = useState(-1);
const [reload, setReload] = useState(false);
useEffect(() => {
setUserId(Number(window.localStorage.getItem("userId") || -1));
}, []);
useEffect(() => { useEffect(() => {
//中断前一次请求 //中断前一次请求
abort?.abort(); abort?.abort();
setAbort(new AbortController()); setAbort(new AbortController());
}, [pageParams, props.params]); }, [pageParams, props.params, reload]);
useEffect(() => { useEffect(() => {
if (!abort) { if (!abort) {
...@@ -58,6 +64,24 @@ export default function Requirements(props: Props) { ...@@ -58,6 +64,24 @@ export default function Requirements(props: Props) {
}); });
}; };
/**
* 确认解决
* @param e
*/
const confirmSolved = (
item: Item
) => {
api.solveRequire({
requirementsInfoId: item.id,
userAccountId: userId
}).then(res => {
if(res.code === '200'){
window.messageApi.success('提交完成');
setReload(!reload);
}
})
};
return ( return (
<Spin spinning={loading} delay={500}> <Spin spinning={loading} delay={500}>
<div className={styles.requirements} style={{ height: 635 }}> <div className={styles.requirements} style={{ height: 635 }}>
...@@ -76,12 +100,24 @@ export default function Requirements(props: Props) { ...@@ -76,12 +100,24 @@ export default function Requirements(props: Props) {
具体需求:{item.requireDescription} 具体需求:{item.requireDescription}
</div> </div>
</div> </div>
<Button {item.userAccountId === userId && (
type="primary" <Popconfirm
style={{ width: 120, height: 40, flexShrink: 0 }} title="提示"
> description="确认该需求已经解决了吗?"
申请合作 onConfirm={() => confirmSolved(item)}
</Button> okText="是"
cancelText="否"
disabled={!!item.solved}
>
<Button
type="primary"
style={{ width: 120, height: 40, flexShrink: 0 }}
disabled={!!item.solved}
>
已解决
</Button>
</Popconfirm>
)}
</div> </div>
); );
})} })}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论