提交 4372450a 作者: 翁进城

Merge branch 'master' into feature/chuck

...@@ -10,6 +10,7 @@ export interface PublishParams { ...@@ -10,6 +10,7 @@ export interface PublishParams {
publishName: string; //发布名称 publishName: string; //发布名称
requirementTypeId: number; //需求类型 requirementTypeId: number; //需求类型
requireDescription: string; //需求描述 requireDescription: string; //需求描述
provinceCode?: string; //省编码
} }
export default { export default {
......
import { Button, Form, Input, Modal, Select } from "antd"; import { Button, Form, Input, Modal, Select } from "antd";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { useGeolocation } from "~/lib/hooks";
import api, { PublishParams, TypeResp } from "./api"; import api, { PublishParams, TypeResp } from "./api";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
...@@ -17,7 +18,8 @@ export default function PublishModal(props: Props) { ...@@ -17,7 +18,8 @@ export default function PublishModal(props: Props) {
requirementTypeId: -1, requirementTypeId: -1,
}); });
const [form] = Form.useForm(); const [form] = Form.useForm();
console.log("form", form); const position = useGeolocation();
console.log("position", position);
useEffect(() => { useEffect(() => {
api.listType().then((res) => { api.listType().then((res) => {
...@@ -32,10 +34,12 @@ export default function PublishModal(props: Props) { ...@@ -32,10 +34,12 @@ export default function PublishModal(props: Props) {
.publish({ .publish({
...params, ...params,
...values, ...values,
provinceCode: position?.address?.addressComponent?.adcode
}) })
.then((res) => { .then((res) => {
if (res.code !== "-1") { if (res.code === "200") {
props.onCancel && props.onCancel(); props.onCancel && props.onCancel();
window.messageApi.success("发布成功");
setTimeout(() => { setTimeout(() => {
form.resetFields(); form.resetFields();
}, 500); }, 500);
......
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import api, { UserInfoResp } from "~/api";
/*
const fetcher = (url) =>
fetch(url)
.then((r) => r.json())
.then((data) => {
return { user: data?.user || null };
}); */
export function useUser() {
const [user, setUser] = useState<UserInfoResp | null>(null);
const [userAccountId, setUserAccountId] = useState<number | "">('');
useEffect(() => {
setUserAccountId(Number(window.localStorage.getItem('userId')));
try {
let userInfo = JSON.parse(window.localStorage.getItem('userInfo') || '') || null;
setUser(userInfo);
} catch (e) { }
}, [])
useEffect(() => {
if (!user) {
api
.userInfo()
.then((res) => {
if(res.code == '200'){
setUser(res.result || null);
}else{
setUserAccountId('');
}
window.localStorage.setItem('userInfo', JSON.stringify(res.result || ''));
});
}
//退出登录
if(userAccountId === ''){
setUser(null);
window.localStorage.setItem('userInfo', '');
}
}, [userAccountId]);
return user;
}
export function useGeolocation() { export function useGeolocation() {
const [position, setPosition] = useState<{ const [position, setPosition] = useState<{
......
...@@ -32,7 +32,7 @@ export default function JoinPolicy() { ...@@ -32,7 +32,7 @@ export default function JoinPolicy() {
.then((res) => { .then((res) => {
console.log("提交结果", res); console.log("提交结果", res);
if (res.code === "200") { if (res.code === "200") {
window.messageApi.success(res.result); window.messageApi.success('提交成功');
setTimeout(() => { setTimeout(() => {
router.push("/"); router.push("/");
}, 1500); }, 1500);
......
...@@ -21,6 +21,11 @@ export interface Dynamic { ...@@ -21,6 +21,11 @@ export interface Dynamic {
likesCount: number; likesCount: number;
commentCount: number; commentCount: number;
likes: boolean; likes: boolean;
userBaseInfo: {
id: number,
nickName: string,
userImg: string
}
} }
export interface DynamicListResp { export interface DynamicListResp {
......
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
color: #000000; color: #000000;
margin-bottom: 16px; margin-bottom: 16px;
padding-right: 10px;
} }
} }
......
...@@ -82,6 +82,7 @@ export default function Forum() { ...@@ -82,6 +82,7 @@ export default function Forum() {
//评论内容 //评论内容
const onComment = (values: any, id: number, i: number) => { const onComment = (values: any, id: number, i: number) => {
if (userInfo) { if (userInfo) {
api api
.comment({ .comment({
...@@ -91,14 +92,9 @@ export default function Forum() { ...@@ -91,14 +92,9 @@ export default function Forum() {
}) })
.then((res) => { .then((res) => {
if (res.code === "200") { if (res.code === "200") {
window.messageApi.success("评论成功");
} }
}); });
}
};
//评论内容
const onCommentContent = () => {
if (userInfo) {
} else { } else {
setNeedLogin(true); setNeedLogin(true);
} }
...@@ -127,9 +123,15 @@ export default function Forum() { ...@@ -127,9 +123,15 @@ export default function Forum() {
return ( return (
<div key={item.id} className={styles.item}> <div key={item.id} className={styles.item}>
<Space size={10} align="start"> <Space size={10} align="start">
<Image alt="" className={styles.headImg}></Image> <Image
alt=""
className={styles.headImg}
src={item.userBaseInfo.userImg}
></Image>
<div className={styles.info}> <div className={styles.info}>
<div className={styles.name}>给**的</div> <div className={styles.name}>
{item.userBaseInfo.nickName}
</div>
<div className={styles.desc}>{item.description}</div> <div className={styles.desc}>{item.description}</div>
<div className={styles.imgs}> <div className={styles.imgs}>
<Image.PreviewGroup <Image.PreviewGroup
...@@ -204,7 +206,6 @@ export default function Forum() { ...@@ -204,7 +206,6 @@ export default function Forum() {
type="primary" type="primary"
htmlType="submit" htmlType="submit"
className="btnComment" className="btnComment"
onClick={onCommentContent}
> >
评论 评论
</Button> </Button>
......
import { Button, Empty, Pagination, Spin } from "antd"; import { Button, Empty, Pagination, Spin } from "antd";
import { useState, useEffect } from "react"; import { useState, useEffect, useContext } from "react";
import { UserContext } from "~/lib/userProvider";
import api, { Item } from "./api"; import api, { Item } from "./api";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
...@@ -21,6 +22,7 @@ export default function Bids(props: Props) { ...@@ -21,6 +22,7 @@ export default function Bids(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 [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
const {userInfo, setNeedLogin} = useContext(UserContext);
useEffect(() => { useEffect(() => {
//中断前一次请求 //中断前一次请求
...@@ -57,16 +59,22 @@ export default function Bids(props: Props) { ...@@ -57,16 +59,22 @@ export default function Bids(props: Props) {
}); });
}; };
//申请合作
const onApply = (item: Item) => { const onApply = (item: Item) => {
if (userInfo) {
api api
.apply({ .apply({
tenderNewsId: item.id, tenderNewsId: item.tenderNewsId,
tenderInfoId: item.id,
}) })
.then((res) => { .then((res) => {
if (res.code === "200") { if (res.code === "200") {
window.messageApi.success("申请成功"); window.messageApi.success("申请成功");
} }
}); });
} else {
setNeedLogin(true);
}
}; };
return ( return (
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论