diff --git a/src/pages/MainPage/ProjectManager/manager.js b/src/pages/MainPage/ProjectManager/manager.js
index 59aee38..73f80e5 100644
--- a/src/pages/MainPage/ProjectManager/manager.js
+++ b/src/pages/MainPage/ProjectManager/manager.js
@@ -15,6 +15,7 @@ import MessageDetail from '@/pages/SystemMessage/message/components/messageDetai
import NoticeDetail from '@/pages/notice/noticeList/components/NoticeDetail'
import QuestDetail from '@/pages/SystemMessage/message/components/questDetail'
import { getQuestList } from '@/pages/SystemMessage/message/service'
+import ApprovalDetail from '@/pages/SystemMessage/message/components/approvalDetail'
@connect(({ dashboard, loading }) => ({
...dashboard,
downlistLoading: loading.effects['dashboard/fetchDowntlist'],
@@ -29,7 +30,8 @@ class manager extends PureComponent {
detailId: '1', // 公告id
noticeDetail: false, // 公告弹窗
questData: {},//问卷数据
- questVisible: false //问卷弹窗
+ questVisible: false,//问卷弹窗
+ mainDetail: false, // 审批单消息弹窗
// NTKF_PARAM: {
// siteid: "bl_1000", //企业ID,,为固定值
// settingid: "bl_1000_1492484340268", //接待组ID,为固定值,必填
@@ -56,6 +58,10 @@ class manager extends PureComponent {
type: "dashboard/fetchtlistre",
payload: { pageNo: 1, pageSize: 7 }
})
+ this.props.dispatch({
+ type: "dashboard/fetchtClarify",
+ payload: { authorizestate: '0', templatetype: '4', size: 6 }
+ })
NTKF_PARAM = {
siteid: "bl_1000", //企业ID,,为固定值
settingid: "bl_1000_1492484340268", //接待组ID,为固定值,必填
@@ -65,6 +71,7 @@ class manager extends PureComponent {
userlevel: "1", //网站自定义会员级别,1-N,可根据选择判断,取值显示到小能客户端
erpparam: "abc" //erpparam为erp功能的扩展字段,可选,购买erp功能后用于erp功能集成
}
+ this.approvalDetail()
}
onChange = (date, dateString) => {
this.setState({
@@ -91,7 +98,8 @@ class manager extends PureComponent {
}
closeModel = () => { // 关闭消息弹窗
this.setState({
- messageDetail: false
+ messageDetail: false,
+ mainDetail: false,
})
}
lookInfo = (id) => { // 公告查看
@@ -105,17 +113,22 @@ class manager extends PureComponent {
noticeDetail: false
})
}
+ approvalDetail = () => { // 审批单消息查看详情
+ this.setState({
+ mainDetail: true
+ })
+ }
toParticipate = async (servicecode) => {//问卷调查弹窗
const { questId } = JSON.parse(servicecode);
await getQuestList({ id: questId }).then(res => {
- if (res?.code == 200 && res?.success) {
- this.setState({
- questData: res?.data,
- questVisible: true,
- })
- }
+ if (res?.code == 200 && res?.success) {
+ this.setState({
+ questData: res?.data,
+ questVisible: true,
+ })
+ }
})
- }
+ }
closeParticipate = () => { // 关闭问卷调查弹窗
this.setState({
questVisible: false
@@ -144,13 +157,13 @@ class manager extends PureComponent {
history.push('/ProjectLayout/Manager/HomePageSectionList');
};
render() {
- const { downlist, projectlist, staloading, tlist, trelist } = this.props;
- const { datevalue, messId, messageDetail, detailId, noticeDetail, questData, questVisible } = this.state;
+ const { downlist, projectlist, staloading, tlist, trelist, idList, dateNum } = this.props;
+ const { datevalue, messId, messageDetail, detailId, noticeDetail, questData, questVisible, mainDetail } = this.state;
return (
<>
{
- START_ENV == 'UAT' || START_ENV == 'DEV' || START_ENV == 'sim' ? '' :
- this.talkXy()}>咨询服务︵8:30|12:3013:00|17:00︶
+ START_ENV == 'UAT' || START_ENV == 'DEV' || START_ENV == 'sim' ? '' :
+ this.talkXy()}>咨询服务︵8:30|12:3013:00|17:00︶
}
@@ -271,9 +284,12 @@ class manager extends PureComponent {
/>
- {messageDetail ? { this.closeModel(), this.props.dispatch({type: "dashboard/fetchtlistre", payload: { pageNo: 1, pageSize: 7 }}) }} modalVisible={messageDetail} /> : null}
- {questVisible ? { this.closeParticipate(), this.props.dispatch({type: "dashboard/fetchtlistre", payload: { pageNo: 1, pageSize: 7 }}) }} modalVisible={questVisible} /> : null}
+ {messageDetail ? { this.closeModel(), this.props.dispatch({ type: "dashboard/fetchtlistre", payload: { pageNo: 1, pageSize: 7 } }) }} modalVisible={messageDetail} /> : null}
+ {questVisible ? { this.closeParticipate(), this.props.dispatch({ type: "dashboard/fetchtlistre", payload: { pageNo: 1, pageSize: 7 } }) }} modalVisible={questVisible} /> : null}
{noticeDetail && { this.noticeModel() }} modalVisible={noticeDetail} />}
+ {
+ idList.length > 0 ? { this.closeModel(), this.props.dispatch({ type: "dashboard/fetchtClarify", payload: { authorizestate: '0', templatetype: '4', size: 6 } }) }} modalVisible={mainDetail} /> : null
+ }
>
)
}
diff --git a/src/pages/MainPage/ProjectManager/purchaseManager.js b/src/pages/MainPage/ProjectManager/purchaseManager.js
index 61177a3..1ffb5e3 100644
--- a/src/pages/MainPage/ProjectManager/purchaseManager.js
+++ b/src/pages/MainPage/ProjectManager/purchaseManager.js
@@ -15,6 +15,7 @@ import MessageDetail from '@/pages/SystemMessage/message/components/messageDetai
import NoticeDetail from '@/pages/notice/noticeList/components/NoticeDetail'
import QuestDetail from '@/pages/SystemMessage/message/components/questDetail'
import { getQuestList } from '@/pages/SystemMessage/message/service'
+import ApprovalDetail from '@/pages/SystemMessage/message/components/approvalDetail'
@connect(({ dashboard, loading }) => ({
...dashboard,
@@ -30,7 +31,8 @@ class manager extends PureComponent {
detailId: '1', // 公告id
noticeDetail: false, // 公告弹窗
questData: {},//问卷数据
- questVisible: false //问卷弹窗
+ questVisible: false, //问卷弹窗
+ mainDetail: false, // 审批单消息弹窗
}
componentDidMount() {
this.props.dispatch({
@@ -49,6 +51,10 @@ class manager extends PureComponent {
type: "dashboard/fetchtlistre",
payload: { pageNo: 1, pageSize: 7 }
})
+ this.props.dispatch({
+ type: "dashboard/fetchtClarify",
+ payload: { authorizestate: '0', templatetype: '4', size: 6 }
+ })
NTKF_PARAM = {
siteid: "bl_1000", //企业ID,,为固定值
settingid: "bl_1000_1492484340268", //接待组ID,为固定值,必填
@@ -58,6 +64,7 @@ class manager extends PureComponent {
userlevel: "1", //网站自定义会员级别,1-N,可根据选择判断,取值显示到小能客户端
erpparam: "abc" //erpparam为erp功能的扩展字段,可选,购买erp功能后用于erp功能集成
}
+ this.approvalDetail()
}
onChange = (date, dateString) => {
this.setState({
@@ -84,7 +91,8 @@ class manager extends PureComponent {
}
closeModel = () => { // 关闭消息弹窗
this.setState({
- messageDetail: false
+ messageDetail: false,
+ mainDetail: false,
})
}
lookInfo = (id) => { // 公告查看
@@ -98,17 +106,22 @@ class manager extends PureComponent {
noticeDetail: false
})
}
+ approvalDetail = () => { // 审批单消息查看详情
+ this.setState({
+ mainDetail: true
+ })
+ }
toParticipate = async (servicecode) => {//问卷调查弹窗
const { questId } = JSON.parse(servicecode);
await getQuestList({ id: questId }).then(res => {
- if (res?.code == 200 && res?.success) {
- this.setState({
- questData: res?.data,
- questVisible: true,
- })
- }
+ if (res?.code == 200 && res?.success) {
+ this.setState({
+ questData: res?.data,
+ questVisible: true,
+ })
+ }
})
- }
+ }
closeParticipate = () => { // 关闭问卷调查弹窗
this.setState({
questVisible: false
@@ -119,20 +132,20 @@ class manager extends PureComponent {
history.push('/ProjectLayout/Manager/HomePageSectionList');
};
talkXy = () => {
- if(NTKF){
+ if (NTKF) {
NTKF.im_openInPageChat('bl_1000_1492484340268');
} else {
message.warn('小优客服初始化失败,请联系系统管理员!')
}
}
render() {
- const { downlist, projectlist, staloading, tlist, trelist } = this.props;
- const { datevalue, messId, messageDetail, detailId, noticeDetail, questData, questVisible } = this.state;
+ const { downlist, projectlist, staloading, tlist, trelist, idList, dateNum } = this.props;
+ const { datevalue, messId, messageDetail, detailId, noticeDetail, questData, questVisible, mainDetail } = this.state;
return (
<>
{
START_ENV == 'UAT' || START_ENV == 'DEV' || START_ENV == 'sim' ? '' :
- this.talkXy()}>咨询服务︵8:30|12:3013:00|17:00︶
+ this.talkXy()}>咨询服务︵8:30|12:3013:00|17:00︶
}
@@ -249,9 +262,12 @@ class manager extends PureComponent {
/>
- {messageDetail ? { this.closeModel(), this.props.dispatch({type: "dashboard/fetchtlistre", payload: { pageNo: 1, pageSize: 7 }}) }} modalVisible={messageDetail} /> : null }
- {questVisible ? { this.closeParticipate(), this.props.dispatch({type: "dashboard/fetchtlistre", payload: { pageNo: 1, pageSize: 7 }}) }} modalVisible={questVisible} /> : null}
+ {messageDetail ? { this.closeModel(), this.props.dispatch({ type: "dashboard/fetchtlistre", payload: { pageNo: 1, pageSize: 7 } }) }} modalVisible={messageDetail} /> : null}
+ {questVisible ? { this.closeParticipate(), this.props.dispatch({ type: "dashboard/fetchtlistre", payload: { pageNo: 1, pageSize: 7 } }) }} modalVisible={questVisible} /> : null}
{noticeDetail && { this.noticeModel() }} modalVisible={noticeDetail} />}
+ {
+ idList.length > 0 ? { this.closeModel(), this.props.dispatch({ type: "dashboard/fetchtClarify", payload: { authorizestate: '0', templatetype: '4', size: 6 } }) }} modalVisible={mainDetail} /> : null
+ }
>
)
}
diff --git a/src/pages/SystemMessage/message/components/approvalDetail.tsx b/src/pages/SystemMessage/message/components/approvalDetail.tsx
new file mode 100644
index 0000000..5856cc8
--- /dev/null
+++ b/src/pages/SystemMessage/message/components/approvalDetail.tsx
@@ -0,0 +1,179 @@
+import { Button, Form, Input, Modal } from "antd"
+import React, { useEffect, useState } from "react"
+import { describeSiteMsgDetail, getProjectById, selectMsgRead } from '../service'
+import '@/assets/ld_style.less'
+import { history } from 'umi';
+import { followUpAProjectManager, getDefId } from '@/utils/session';
+
+const { TextArea } = Input;
+
+interface ApprovalDetailProps {
+ modalVisible: boolean;
+ approvalId: string;
+ dateNum: Number;
+ trelist: any[];
+ onCancel: () => void;
+}
+
+const layout = {
+ labelCol: { span: 6 },
+ wrapperCol: { span: 15 },
+};
+
+const ApprovalDetail: React.FC = (props) => {
+ const { modalVisible, approvalId, onCancel, trelist, dateNum } = props;
+ const [form] = Form.useForm();
+ const [detailId, setDetailId] = useState(approvalId); // 详情id
+ const [lastVisible, setLastVisible] = useState(trelist?.indexOf(approvalId) == 0 ? true : false); // 上一条禁用
+ const [nextVisible, setNextVisible] = useState(trelist?.indexOf(approvalId) == trelist?.length - 1 ? true : false); // 下一条禁用
+ const [knowVisible, setKnowVisible] = useState(false); // 知道了禁用
+ const [projectId, setProjectId] = useState(); // 项目id
+ const [roomType, setRoomType] = useState(); // 判断资审候审
+ const [disFollowUp, setDisFollowUp] = useState(false) //跟进按钮隐藏
+
+ useEffect(() => {
+ Int(approvalId);
+ setDetailId(approvalId)
+ }, [approvalId]);
+ const Int = (detailId: any) => {
+ describeSiteMsgDetail(detailId).then(res => {
+ // if(res.code == 200){
+ if (res?.servicecode) {
+ let detailMess = JSON.parse(res.servicecode)
+ setProjectId(detailMess.tpId)
+ setRoomType(detailMess.roomType)
+ } else {
+ // message.error('项目数据错误,无法获取流程,请联系管理员!')
+ setDisFollowUp(true)
+ }
+ res.authorizestate == '0' ? setKnowVisible(false) : setKnowVisible(true)
+ form.setFieldsValue({
+ "title": res.title,
+ "createtime": res.createtime,
+ "content": res.content
+ });
+ // }
+ });
+ };
+
+ const next = () => { // 下一条
+ setLastVisible(false)
+ let current = trelist.indexOf(detailId)
+ if (current < trelist.length - 2 && current != trelist.length - 2) {
+ setDetailId(trelist[current + 1])
+ Int(trelist[current + 1])
+ } else if (current == trelist.length - 2) {
+ setDetailId(trelist[current + 1])
+ Int(trelist[current + 1])
+ setNextVisible(true)
+ } else {
+ setNextVisible(true)
+ }
+ }
+
+ const last = () => { // 上一条
+ setNextVisible(false)
+ let current: any = trelist.indexOf(detailId)
+ if (current > 0 && current != 1) {
+ setDetailId(trelist[current - 1])
+ Int(trelist[current - 1])
+ } else if (current == 1) {
+ setDetailId(trelist[current - 1])
+ Int(trelist[current - 1])
+ setLastVisible(true)
+ } else {
+ setLastVisible(true)
+ }
+ }
+
+ const getRead = () => { // 知道了
+ selectMsgRead(detailId).then(res => {
+ setKnowVisible(true)
+ });
+ }
+
+ const getFollow = async () => { // 跟进
+ await getProjectById(projectId).then(async response => {
+ if (response?.code == 200 && response?.success == true) {
+ const resData = response?.data
+ await followUpAProjectManager(resData);
+ const defId = getDefId();
+ if (roomType == '1' && (defId == 'bid_prequalification' || defId == 'comparison_one_prequalification')) { //公开招标资格预审,公开比选一阶段资格预审
+ history.push('/ProjectLayout/ZYuShen/senior/Notice?roomType=1')
+ } else if (roomType == '2' && (defId == 'bid_prequalification' || defId == 'comparison_one_prequalification')) { //公开招标资格预审后审阶段,公开比选一阶段资格预审后审阶段
+ history.push('/ProjectLayout/biddingAnnouncement/BiddingInvitationList?roomType=2')
+ } else if (
+ defId == 'bid_qualification' ||
+ defId == 'comparison_one' ||
+ defId == 'comparison_multi' ||
+ defId == 'recruit' ||
+ defId == 'negotiation_competitive_public'
+ ) { //公开招标后审,公开比选一阶段后审,公开比选多阶段,招募单轮,竞争性谈判发公告
+ history.push('/ProjectLayout/biddingAnnouncement/BiddingAnnouncementList')
+ } else if (
+ defId == 'bid_invitation' ||
+ defId == 'negotiation_competitive_invite' ||
+ defId == 'negotiation_single'
+ ) { //邀请招标,竞争性谈判发邀请函,单一来源
+ history.push('/ProjectLayout/biddingAnnouncement/BiddingInvitationList')
+ } else if (
+ defId == 'recruit_multi'
+ ) { //多轮招募
+ history.push('/ProjectLayout/ZZhaoMu/Bid/BiddingAnnouncement/BiddingAnnouncementList')
+ }
+ }
+ })
+ }
+
+ return (
+ <>
+ onCancel()}
+ width={800}
+ centered
+ footer={[
+ ,
+ ,
+ ]}
+ >
+ 您有 {dateNum} 条公告审批结束消息,当前只显示 6 条最新的公告审批结束提示,请到 history.push('/SystemMessage/message')}> 这里 查看全部提示信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default ApprovalDetail
+
diff --git a/src/pages/SystemMessage/message/index.tsx b/src/pages/SystemMessage/message/index.tsx
index a9020a1..48f5d5d 100644
--- a/src/pages/SystemMessage/message/index.tsx
+++ b/src/pages/SystemMessage/message/index.tsx
@@ -34,6 +34,7 @@ const FilesList: React.FC<{}> = () => {
1: { text: '提疑消息' },
2: { text: '澄清消息' },
3: { text: '调查问卷' },
+ 4: { text: '审批消息' },
},
},
{