提交 dd94b9e5 作者: 余乾开

Merge branch 'master' into feature/chuck

......@@ -83,7 +83,12 @@ export default function request(url: string, method: String = 'get', data?: any,
}
if (data.code !== '200') {
errMsg(data.message || '请求出错');
//未登录判断
if(data.code === '5008'){
errMsg('请先登录');
}else{
errMsg(data.message || '请求出错');
}
}
return data;
......
......@@ -136,7 +136,7 @@ export default function NavHeader() {
) : (
<Button
type="text"
onClick={() => testLogin()}
onClick={() => setOpenLoginModal(true)}
style={{ fontWeight: "bold", fontSize: 16 }}
>
登录
......
......@@ -6,7 +6,6 @@ export interface TypeResp {
}
export interface PublishParams {
userAccountId: number; //账号id
publishPhone: number; //手机号
publishName: string; //发布名称
requirementTypeId: number; //需求类型
......
......@@ -11,7 +11,6 @@ type Props = {
export default function PublishModal(props: Props) {
const [types, setTypes] = useState<Array<TypeResp>>([]); //需求类型
const [params, setParams] = useState<PublishParams>({
userAccountId: -1,
publishName: "",
publishPhone: -1,
requireDescription: "",
......
......@@ -62,14 +62,15 @@ export default function LoginModal(props: Props) {
})
.then((res) => {
if (res.code === "200") {
setUserInfo({
...res.result,
id: res.result?.userAccountId,
});
window.messageApi.success("登录成功");
clearInterval(handle);
setTimeHandle(null);
props.onCancel();
window.localStorage.setItem("token", res.result.token);
api.userInfo().then((res) => {
setUserInfo(res.result || "");
window.messageApi.success("登录成功");
props.onCancel();
});
}
});
}, 1000);
......
......@@ -6,11 +6,23 @@ export interface CooperationApplyParams {
remark?: string,
userAccountId: number,
cooperationTagId: number
}
}
export interface GetTagIdResp {
id: number,
tagName: string,
tagImg: string,
tagDescription: string,
createTime: string
}
export default {
//请加盟
cooperationApply(params: CooperationApplyParams):Promise<Response<string>>{
//请加盟
cooperationApply(params: CooperationApplyParams): Promise<Response<string>> {
return request('/userapp/cooperation/apply', 'post', params)
},
//加盟标签相关内容
getTagById(params: { id: number }): Promise<Response<GetTagIdResp>> {
return request('/userapp/cooperation/getTagById', 'get', params)
}
}
\ No newline at end of file
import { Button, Col, Divider, Form, Input, Row } from "antd";
import { useRouter } from "next/router";
import { useEffect, useState } from "react";
import LayoutView from "~/components/layout";
import api from "./api";
import styles from "./index.module.scss";
export default function JoinPolicy() {
const router = useRouter();
const [content, setContent] = useState(""); //福利内容
const tagId = Number(router.query.tagId);
useEffect(() => {
if (tagId) {
api
.getTagById({
id: tagId,
})
.then((res) => {
setContent(res.result?.tagDescription.replace("\n", "<br/>") || "");
});
}
}, []);
//提交
const onFinish = (values: any) => {
console.log(values);
api
.cooperationApply({
...values,
userAccountId: 1,
cooperationTagId: router.query.tagId,
cooperationTagId: tagId,
})
.then((res) => {
console.log("提交结果", res);
if (res.result === "已通过") {
if (res.code === "200") {
window.messageApi.success(res.result);
setTimeout(() => {
router.push("/");
}, 1500);
} else {
window.messageApi.error(res.message);
}
});
};
......@@ -50,24 +62,8 @@ export default function JoinPolicy() {
<div
className={styles.font2}
style={{ paddingLeft: 50, paddingRight: 50 }}
>
1.每月自动获取一张高额度优惠券
<br /> 2.流量扶持和店铺曝光度
<br />
3成为科比特指定官方生态合作伙伴
<br /> 4.享受不低于1亿制造采购补贴
<br /> 5.无人机产业链资源共享
<br /> 6.享受价值5亿产业链订单
<br /> 7.享受一对一代运营服务
<br /> 8.享受无人机生态圈资源
<br /> 9.成为科比特指定官方生态
<br />
10.享受无人机生态圈资源合作伙伴
<br />
11.受价值5亿产业链订单
<br />
12.成为科比特指定官方生态合作伙伴
</div>
dangerouslySetInnerHTML={{ __html: content }}
></div>
<Divider />
<div
className={styles.font1}
......
......@@ -27,6 +27,11 @@ export interface Item {
apply: 0 | 1;
}
export interface ApplyParams {
tenderInfoId?: number; //招标详情id
tenderNewsId?: number; //招标id
}
export default {
/**
......@@ -36,5 +41,9 @@ export default {
*/
listNewTenderInfo(params: ListNewTenderInfoParams, options = {}): Promise<Response<ListNewTenderInfoResp>> {
return request('/release/tender/listNewTenderInfo', 'post', params, options);
},
//合作申请提交
apply(params: ApplyParams){
return request('/release/tender/apply', 'post', params);
}
}
\ No newline at end of file
......@@ -57,6 +57,18 @@ export default function Bids(props: Props) {
});
};
const onApply = (item: Item) => {
api
.apply({
tenderNewsId: item.id,
})
.then((res) => {
if (res.code === "200") {
window.messageApi.success("申请成功");
}
});
};
return (
<Spin spinning={loading} delay={500}>
<div className={styles.bids} style={{ height: 610 }}>
......@@ -64,9 +76,7 @@ export default function Bids(props: Props) {
return (
<div className={styles.item} key={item.id}>
<div className={styles.info}>
<div className={styles.title}>
{item.tenderContent}
</div>
<div className={styles.title}>{item.tenderContent}</div>
</div>
{item.apply ? (
<Button
......@@ -80,7 +90,9 @@ export default function Bids(props: Props) {
) : (
<Button type="primary" className={styles.btn}>
<div className={styles.text1}>{item.tenderPrice}</div>
<div className={styles.text2}>申请合作</div>
<div className={styles.text2} onClick={() => onApply(item)}>
申请合作
</div>
</Button>
)}
</div>
......
......@@ -67,15 +67,19 @@ export default function Cases(props: Props) {
return (
<div className={styles.item} key={item.id}>
<div className={styles.info}>
<div className={styles.title}>{item.caseTitle}</div>
<div className={styles.title}>
<Button
type="link"
style={{ padding: "0 0" }}
onClick={() =>
Router.push("/projectInfo/caseArticle/" + item.id)
}
>
{item.caseTitle}
</Button>
</div>
</div>
<Button
type="primary"
className={styles.btn}
onClick={() =>
Router.push("/projectInfo/caseArticle/" + item.id)
}
>
<Button type="primary" className={styles.btn}>
申请合作
</Button>
</div>
......
......@@ -23,9 +23,6 @@
flex: auto;
.title {
white-space: nowrap; /* 防止换行 */
overflow: hidden; /* 隐藏溢出部分 */
text-overflow: ellipsis; /* 使用省略号代替溢出部分 */
font-size: 16px;
font-family: MicrosoftYaHeiUI-Bold, MicrosoftYaHeiUI;
font-weight: bold;
......@@ -35,9 +32,6 @@
}
.desc {
white-space: nowrap; /* 防止换行 */
overflow: hidden; /* 隐藏溢出部分 */
text-overflow: ellipsis; /* 使用省略号代替溢出部分 */
font-size: 14px;
font-family: MicrosoftYaHei;
color: RGBA(135, 135, 135, 0.4);
......
......@@ -66,20 +66,20 @@ export default function Requirements(props: Props) {
/**
* 确认解决
* @param e
* @param e
*/
const confirmSolved = (
item: Item
) => {
api.solveRequire({
requirementsInfoId: item.id,
userAccountId: userId
}).then(res => {
if(res.code === '200'){
window.messageApi.success('提交完成');
setReload(!reload);
}
})
const confirmSolved = (item: Item) => {
api
.solveRequire({
requirementsInfoId: item.id,
userAccountId: userId,
})
.then((res) => {
if (res.code === "200") {
window.messageApi.success("提交完成");
setReload(!reload);
}
});
};
return (
......@@ -94,13 +94,14 @@ export default function Requirements(props: Props) {
<div className={styles.logo}></div>
<div className={styles.info}>
<div className={styles.title}>
项目需求:电力巡检需要5名飞手
项目需求:{item.requireDescription}
</div>
{/*
<div className={styles.desc}>
具体需求:{item.requireDescription}
</div>
</div> */}
</div>
{item.userAccountId === userId && (
{item.userAccountId === userId ? (
<Popconfirm
title="提示"
description="确认该需求已经解决了吗?"
......@@ -117,6 +118,8 @@ export default function Requirements(props: Props) {
已解决
</Button>
</Popconfirm>
) : (
<div style={{ width: 120, flexShrink: 0 }}></div>
)}
</div>
);
......
......@@ -20,6 +20,8 @@ const withTheme = (node: JSX.Element) => (
theme={{
token: {
borderRadius: 6,
colorLink: "#333",
colorLinkHover: "#ff552d",
},
}}
>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论