Commit 5c0eb791 authored by Bill's avatar Bill

fix: 修改会员整改,考评,投诉与建议bug

parent b8745bc0
...@@ -518,7 +518,7 @@ const MemberRoute: RouterChild = { ...@@ -518,7 +518,7 @@ const MemberRoute: RouterChild = {
}, },
{ {
path: '/memberCenter/memberAbility/profile/suggestion/edit', path: '/memberCenter/memberAbility/profile/suggestion/edit',
name: '新增会员反馈', name: '修改会员反馈',
component: "@/pages/member/memberQuery/suggest/add", component: "@/pages/member/memberQuery/suggest/add",
hideInMenu: true, hideInMenu: true,
}, },
...@@ -529,6 +529,13 @@ const MemberRoute: RouterChild = { ...@@ -529,6 +529,13 @@ const MemberRoute: RouterChild = {
hideInMenu: true, hideInMenu: true,
noMargin: true, noMargin: true,
}, },
{
path: '/memberCenter/memberAbility/profile/suggestion/preview',
name: '查看会员反馈详情',
component: "@/pages/member/memberQuery/suggest/detail",
hideInMenu: true,
noMargin: true,
},
], ],
}, },
...@@ -618,6 +625,13 @@ const MemberRoute: RouterChild = { ...@@ -618,6 +625,13 @@ const MemberRoute: RouterChild = {
noMargin: true, noMargin: true,
hideInMenu: true, hideInMenu: true,
}, },
{
path: '/memberCenter/memberAbility/memberEvaluate/tobeEvaluate/preview',
name: '查看待考评打分详情',
component: '@/pages/member/memberEvaluate/tobeEvaluate/detail',
noMargin: true,
hideInMenu: true,
},
// 待提交汇总考评结果 // 待提交汇总考评结果
{ {
path: '/memberCenter/memberAbility/memberEvaluate/tobeSubmitSummary', path: '/memberCenter/memberAbility/memberEvaluate/tobeSubmitSummary',
...@@ -632,6 +646,13 @@ const MemberRoute: RouterChild = { ...@@ -632,6 +646,13 @@ const MemberRoute: RouterChild = {
noMargin: true, noMargin: true,
hideInMenu: true, hideInMenu: true,
}, },
{
path: '/memberCenter/memberAbility/memberEvaluate/tobeSubmitSummary/preview',
name: '查看待提交汇总考评结果详情',
component: '@/pages/member/memberEvaluate/tobeSubmitSummary/detail',
noMargin: true,
hideInMenu: true,
},
// 待审核考评结果(一级) // 待审核考评结果(一级)
{ {
path: '/memberCenter/memberAbility/memberEvaluate/tobeReviewI', path: '/memberCenter/memberAbility/memberEvaluate/tobeReviewI',
...@@ -645,6 +666,13 @@ const MemberRoute: RouterChild = { ...@@ -645,6 +666,13 @@ const MemberRoute: RouterChild = {
noMargin: true, noMargin: true,
hideInMenu: true, hideInMenu: true,
}, },
{
path: '/memberCenter/memberAbility/memberEvaluate/tobeReviewI/preview',
name: '查看待审核考评结果(一级)',
component: '@/pages/member/memberEvaluate/tobeReviewI/detail',
noMargin: true,
hideInMenu: true,
},
// 待审核考评结果(二级) // 待审核考评结果(二级)
{ {
path: '/memberCenter/memberAbility/memberEvaluate/tobeReviewII', path: '/memberCenter/memberAbility/memberEvaluate/tobeReviewII',
...@@ -658,6 +686,13 @@ const MemberRoute: RouterChild = { ...@@ -658,6 +686,13 @@ const MemberRoute: RouterChild = {
hideInMenu: true, hideInMenu: true,
noMargin: true, noMargin: true,
}, },
{
path: '/memberCenter/memberAbility/memberEvaluate/tobeReviewII/preview',
name: '查看待审核考评结果(二级)详情',
component: '@/pages/member/memberEvaluate/tobeReviewII/detail',
hideInMenu: true,
noMargin: true,
},
// 待通报考评结果 // 待通报考评结果
{ {
path: '/memberCenter/memberAbility/memberEvaluate/tobeInformed', path: '/memberCenter/memberAbility/memberEvaluate/tobeInformed',
...@@ -670,6 +705,13 @@ const MemberRoute: RouterChild = { ...@@ -670,6 +705,13 @@ const MemberRoute: RouterChild = {
component: '@/pages/member/memberEvaluate/tobeInformed/detail', component: '@/pages/member/memberEvaluate/tobeInformed/detail',
hideInMenu: true, hideInMenu: true,
noMargin: true, noMargin: true,
},
{
path: '/memberCenter/memberAbility/memberEvaluate/tobeInformed/preview',
name: '查看待通报考评结果详情',
component: '@/pages/member/memberEvaluate/tobeInformed/detail',
hideInMenu: true,
noMargin: true,
} }
] ]
}, },
...@@ -726,6 +768,13 @@ const MemberRoute: RouterChild = { ...@@ -726,6 +768,13 @@ const MemberRoute: RouterChild = {
noMargin: true, noMargin: true,
hideInMenu: true hideInMenu: true
}, },
{
path: '/memberCenter/memberAbility/memberRectification/tobeConfirmRectification/preview',
name: '查看待确认整改通知单详情',
component: '@/pages/member/memberRectification/tobeConfirmRectification/detail',
noMargin: true,
hideInMenu: true
},
] ]
}, },
// 投诉建议 // 投诉建议
...@@ -752,6 +801,13 @@ const MemberRoute: RouterChild = { ...@@ -752,6 +801,13 @@ const MemberRoute: RouterChild = {
hideInMenu: true hideInMenu: true
}, },
{ {
path: '/memberCenter/memberAbility/complainAndSuggest/list/preview',
name: '查看投诉建议',
component: '@/pages/member/complaintsAndSuggests/detail',
noMargin: true,
hideInMenu: true
},
{
path: '/memberCenter/memberAbility/complainAndSuggest/list/edit', path: '/memberCenter/memberAbility/complainAndSuggest/list/edit',
name: '修改投诉建议', name: '修改投诉建议',
component: '@/pages/member/complaintsAndSuggests/add', component: '@/pages/member/complaintsAndSuggests/add',
......
...@@ -64,7 +64,7 @@ const FormilyUploadFiles: React.FC<Iprops> = (props: Iprops) => { ...@@ -64,7 +64,7 @@ const FormilyUploadFiles: React.FC<Iprops> = (props: Iprops) => {
} }
return ( return (
<div> <div style={{width: '100%'}}>
<UploadFiles fileList={fileList} onChange={onChange} onRemove={onRemove} disable={!editable} {...rest} /> <UploadFiles fileList={fileList} onChange={onChange} onRemove={onRemove} disable={!editable} {...rest} />
{/* { {/* {
isShowError && errors.length > 0 && ( isShowError && errors.length > 0 && (
......
...@@ -44,7 +44,7 @@ const DEFAULT_RETURN_DATA = { ...@@ -44,7 +44,7 @@ const DEFAULT_RETURN_DATA = {
} }
const TobeEvaluateDetail = () => { const TobeEvaluateDetail = () => {
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { initialValue } = useInitialValue<GetMemberComplaintUpperGetResponse, GetMemberComplaintUpperGetRequest>(PublicApi.getMemberComplaintUpperGet, params); const { initialValue } = useInitialValue<GetMemberComplaintUpperGetResponse, GetMemberComplaintUpperGetRequest>(PublicApi.getMemberComplaintUpperGet, params);
const { visible, toggle } = useModal(); const { visible, toggle } = useModal();
...@@ -53,6 +53,8 @@ const TobeEvaluateDetail = () => { ...@@ -53,6 +53,8 @@ const TobeEvaluateDetail = () => {
const { headers } = useGetAnchorHeader([], {initialValue}) const { headers } = useGetAnchorHeader([], {initialValue})
const { basicInfo, resultInfo } = useGetDetailCommon({initialValue}) const { basicInfo, resultInfo } = useGetDetailCommon({initialValue})
const isView = useMemo(() => lastTypeParams === '/preview', [lastTypeParams])
const onSubmitRes = () => { const onSubmitRes = () => {
toggle(true); toggle(true);
} }
...@@ -104,7 +106,7 @@ const TobeEvaluateDetail = () => { ...@@ -104,7 +106,7 @@ const TobeEvaluateDetail = () => {
title={`事件主题:${initialValue?.subject}`} title={`事件主题:${initialValue?.subject}`}
anchors={headers} anchors={headers}
extra={ extra={
initialValue?.handleResult === null && initialValue?.handleResult === null && !isView &&
( <Button type="primary" onClick={onSubmitRes}>处理结果信息</Button> ) || null ( <Button type="primary" onClick={onSubmitRes}>处理结果信息</Button> ) || null
} }
> >
......
import React, { useRef, useState } from 'react'; import React, { useRef, useState } from 'react';
import { Card, Space, Button, Spin } from 'antd' import { Card, Space, Button, Spin, Popconfirm } from 'antd'
import { setColumnsByLinks } from './common/columns'; import { setColumnsByLinks } from './common/columns';
import { complaintAndSuggestListSchema } from './common/schema'; import { complaintAndSuggestListSchema } from './common/schema';
import useFetchList from '../memberEvaluate/hooks/useFetchList'; import useFetchList from '../memberEvaluate/hooks/useFetchList';
...@@ -16,7 +16,7 @@ import moment from 'moment'; ...@@ -16,7 +16,7 @@ import moment from 'moment';
interface Iprops {}; interface Iprops {};
const queryColumns = setColumnsByLinks({ const queryColumns = setColumnsByLinks({
detail: '/memberCenter/memberAbility/complainAndSuggest/list/detail' detail: '/memberCenter/memberAbility/complainAndSuggest/list/preview'
}) })
const List: React.FC<Iprops> = (props: Iprops) => { const List: React.FC<Iprops> = (props: Iprops) => {
...@@ -31,13 +31,17 @@ const List: React.FC<Iprops> = (props: Iprops) => { ...@@ -31,13 +31,17 @@ const List: React.FC<Iprops> = (props: Iprops) => {
if(record.submitOrUpdateOrDelete) { if(record.submitOrUpdateOrDelete) {
return ( return (
<Space> <Space>
<Spin spinning={loading}> <Popconfirm placement="top" title={"是否确认提交?"} onConfirm={() => handleSubmit({id: record.id}, "submit")} >
<a onClick={() => handleSubmit({id: record.id}, "submit")}>提交投诉建议</a> <Spin spinning={loading}>
</Spin> <a >提交投诉建议</a>
</Spin>
</Popconfirm>
<Link to={`/memberCenter/memberAbility/complainAndSuggest/list/edit?id=${record.id}`}>修改</Link> <Link to={`/memberCenter/memberAbility/complainAndSuggest/list/edit?id=${record.id}`}>修改</Link>
<Spin spinning={loading}> <Popconfirm placement="top" title={"是否确认删除?"} onConfirm={() => handleSubmit({id: record.id}, "delete")} >
<a onClick={() => handleSubmit({id: record.id}, "delete")}>删除</a> <Spin spinning={loading}>
</Spin> <a>删除</a>
</Spin>
</Popconfirm>
</Space> </Space>
) )
} }
......
...@@ -35,13 +35,15 @@ const formActions = createFormActions(); ...@@ -35,13 +35,15 @@ const formActions = createFormActions();
const TobeEvaluateDetail = () => { const TobeEvaluateDetail = () => {
const { visible, toggle } = useModal() const { visible, toggle } = useModal()
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { loading, initialValue }= useInitialValue<GetMemberAppraisalWaitGradeGetResponse, { id: string }>(PublicApi.getMemberAppraisalWaitGradeGet, params) const { loading, initialValue }= useInitialValue<GetMemberAppraisalWaitGradeGetResponse, { id: string }>(PublicApi.getMemberAppraisalWaitGradeGet, params)
const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: ['result'], initialValue: initialValue}) const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: ['result'], initialValue: initialValue})
const [hasScoring, setHasScoring] = useState<boolean>(false); const [hasScoring, setHasScoring] = useState<boolean>(false);
const [submitLoading, setSubmitLoading] = useState<boolean>(false); const [submitLoading, setSubmitLoading] = useState<boolean>(false);
const isView = useMemo(() => lastTypeParams === '/preview' , [lastTypeParams])
const scoringItems = useMemo(() => { const scoringItems = useMemo(() => {
if (!initialValue) { if (!initialValue) {
return {} return {}
...@@ -87,7 +89,7 @@ const TobeEvaluateDetail = () => { ...@@ -87,7 +89,7 @@ const TobeEvaluateDetail = () => {
anchors={anchorHeader} anchors={anchorHeader}
extra={ extra={
( (
!hasScoring && ( !hasScoring && !isView && (
<Button type="primary" onClick={() => toggle(true)}>考评打分</Button> <Button type="primary" onClick={() => toggle(true)}>考评打分</Button>
) )
) )
......
...@@ -14,7 +14,7 @@ import { Link } from 'umi'; ...@@ -14,7 +14,7 @@ import { Link } from 'umi';
interface Iprops {}; interface Iprops {};
const defaultColumns = setColumnsByLinks( const defaultColumns = setColumnsByLinks(
{ {
detail: '/memberCenter/memberAbility/memberEvaluate/tobeEvaluate/detail' detail: '/memberCenter/memberAbility/memberEvaluate/tobeEvaluate/preview'
}, },
['totalScore'] ['totalScore']
); );
......
...@@ -19,14 +19,18 @@ import { history } from 'umi' ...@@ -19,14 +19,18 @@ import { history } from 'umi'
import useInitialValue from '../../common/hooks/useInitialValue'; import useInitialValue from '../../common/hooks/useInitialValue';
const TobeEvaluateDetail = () => { const TobeEvaluateDetail = () => {
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { loading, initialValue }= useInitialValue<GetMemberAppraisalSummaryGetResponse, { id: string }>(PublicApi.getMemberAppraisalSummaryGet, params) const { loading, initialValue }= useInitialValue<GetMemberAppraisalSummaryGetResponse, { id: string }>(PublicApi.getMemberAppraisalSummaryGet, params)
const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: [], initialValue: initialValue}) const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: [], initialValue: initialValue})
const [submitLoading, setSubmitLoading] = useState<boolean>(false) const [submitLoading, setSubmitLoading] = useState<boolean>(false)
const isView = useMemo(() => lastTypeParams === '/preview' , [lastTypeParams])
const onSubmitRes = async () => { const onSubmitRes = async () => {
setSubmitLoading(true) setSubmitLoading(true)
const { code, data } = await PublicApi.postMemberAppraisalWaitNotificationNotification({ids: [id]}); const { code, data } = await PublicApi.postMemberAppraisalWaitNotificationNotification({ids: [+id]});
setSubmitLoading(false) setSubmitLoading(false)
if (code === 1000) { if (code === 1000) {
history.goBack(); history.goBack();
...@@ -39,7 +43,9 @@ const TobeEvaluateDetail = () => { ...@@ -39,7 +43,9 @@ const TobeEvaluateDetail = () => {
title={`考评单号: ${initialValue?.appraisalNo}`} title={`考评单号: ${initialValue?.appraisalNo}`}
anchors={anchorHeader} anchors={anchorHeader}
extra={ extra={
<Button loading={submitLoading} type="primary" onClick={onSubmitRes} icon={<CheckCircleOutlined />}>单据审核</Button> !isView && (
<Button loading={submitLoading} type="primary" onClick={onSubmitRes} icon={<CheckCircleOutlined />}>通报考评结果</Button>
)
} }
> >
<AuditProcess <AuditProcess
......
...@@ -13,7 +13,7 @@ import { Link } from 'umi'; ...@@ -13,7 +13,7 @@ import { Link } from 'umi';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect'; import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
const defaultColumns = setColumnsByLinks({ const defaultColumns = setColumnsByLinks({
detail: '/memberCenter/memberAbility/memberEvaluate/tobeInformed/detail', detail: '/memberCenter/memberAbility/memberEvaluate/tobeInformed/preview',
}); });
interface Iprops {}; interface Iprops {};
......
...@@ -18,17 +18,18 @@ import { GetMemberAppraisalWaitAuditOneGetResponse } from '@/services/MemberV2Ap ...@@ -18,17 +18,18 @@ import { GetMemberAppraisalWaitAuditOneGetResponse } from '@/services/MemberV2Ap
import { history } from 'umi'; import { history } from 'umi';
const TobeEvaluateDetail = () => { const TobeEvaluateDetail = () => {
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { loading, initialValue }= useInitialValue<GetMemberAppraisalWaitAuditOneGetResponse, { id: string }>(PublicApi.getMemberAppraisalWaitAuditOneGet, params) const { loading, initialValue }= useInitialValue<GetMemberAppraisalWaitAuditOneGetResponse, { id: string }>(PublicApi.getMemberAppraisalWaitAuditOneGet, params)
const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: ['result'], initialValue: initialValue}) const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: ['result'], initialValue: initialValue})
const isView = useMemo(() => lastTypeParams === '/preview' , [lastTypeParams])
const { visible, toggle } = useModal(); const { visible, toggle } = useModal();
const onSubmit = async (values: SubmitDataTypes) => { const onSubmit = async (values: SubmitDataTypes) => {
console.log(values)
const { data, code } = await PublicApi.postMemberAppraisalWaitAuditOneAudit({ const { data, code } = await PublicApi.postMemberAppraisalWaitAuditOneAudit({
id: id, id: +id,
agree: values.status, agree: values.status,
reason: values.reason, reason: values.reason,
}) })
...@@ -47,7 +48,9 @@ const TobeEvaluateDetail = () => { ...@@ -47,7 +48,9 @@ const TobeEvaluateDetail = () => {
title={`考评单号: ${initialValue?.appraisalNo}`} title={`考评单号: ${initialValue?.appraisalNo}`}
anchors={anchorHeader} anchors={anchorHeader}
extra={ extra={
<Button type="primary" onClick={() => toggle(true)} icon={<CheckCircleOutlined />}>单据审核</Button> !isView && (
<Button type="primary" onClick={() => toggle(true)} icon={<CheckCircleOutlined />}>审核</Button>
)
} }
> >
<AuditProcess <AuditProcess
...@@ -58,7 +61,7 @@ const TobeEvaluateDetail = () => { ...@@ -58,7 +61,7 @@ const TobeEvaluateDetail = () => {
<CustomizeColumn id="detail" data={basicInfoList} title="基本信息" column={3} /> <CustomizeColumn id="detail" data={basicInfoList} title="基本信息" column={3} />
</div> </div>
<Card title="考评项目" id="project" style={{ margin: `${theme["@margin-md"]} 0` }}> <Card title="考评项目" id="project" style={{ margin: `${theme["@margin-md"]} 0` }}>
<Table columns={projectColumns} dataSource={initialValue?.items}></Table> <Table columns={projectColumns} rowKey={"id"} dataSource={initialValue?.items}></Table>
</Card> </Card>
<div style={{ margin: `${theme["@margin-md"]} 0` }}> <div style={{ margin: `${theme["@margin-md"]} 0` }}>
<CustomizeColumn id="result" data={evaluateResultColumn} title="考评结果" /> <CustomizeColumn id="result" data={evaluateResultColumn} title="考评结果" />
......
...@@ -13,7 +13,7 @@ import { Link } from 'umi'; ...@@ -13,7 +13,7 @@ import { Link } from 'umi';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect'; import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
const defaultColumns = setColumnsByLinks({ const defaultColumns = setColumnsByLinks({
detail: '/memberCenter/memberAbility/memberEvaluate/tobeReviewI/detail', detail: '/memberCenter/memberAbility/memberEvaluate/tobeReviewI/preview',
}); });
interface Iprops {}; interface Iprops {};
......
...@@ -18,17 +18,18 @@ import { GetMemberAppraisalWaitAuditTwoGetResponse } from '@/services/MemberV2Ap ...@@ -18,17 +18,18 @@ import { GetMemberAppraisalWaitAuditTwoGetResponse } from '@/services/MemberV2Ap
import { history } from 'umi'; import { history } from 'umi';
const TobeEvaluateDetail = () => { const TobeEvaluateDetail = () => {
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { loading, initialValue }= useInitialValue<GetMemberAppraisalWaitAuditTwoGetResponse, { id: string }>(PublicApi.getMemberAppraisalWaitAuditTwoGet, params) const { loading, initialValue }= useInitialValue<GetMemberAppraisalWaitAuditTwoGetResponse, { id: string }>(PublicApi.getMemberAppraisalWaitAuditTwoGet, params)
const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: ['result'], initialValue: initialValue}) const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: ['result'], initialValue: initialValue})
const isView = useMemo(() => lastTypeParams === '/preview' , [lastTypeParams])
const { visible, toggle } = useModal(); const { visible, toggle } = useModal();
const onSubmit = async (values: SubmitDataTypes) => { const onSubmit = async (values: SubmitDataTypes) => {
console.log(values)
const { data, code } = await PublicApi.postMemberAppraisalWaitAuditTwoAudit({ const { data, code } = await PublicApi.postMemberAppraisalWaitAuditTwoAudit({
id: id, id: +id,
agree: values.status, agree: values.status,
reason: values.reason, reason: values.reason,
}) })
...@@ -47,7 +48,9 @@ const TobeEvaluateDetail = () => { ...@@ -47,7 +48,9 @@ const TobeEvaluateDetail = () => {
title={`考评单号: ${initialValue?.appraisalNo}`} title={`考评单号: ${initialValue?.appraisalNo}`}
anchors={anchorHeader} anchors={anchorHeader}
extra={ extra={
<Button type="primary" onClick={() => toggle(true)} icon={<CheckCircleOutlined />}>单据审核</Button> !isView && (
<Button type="primary" onClick={() => toggle(true)} icon={<CheckCircleOutlined />}>审核</Button>
)
} }
> >
<AuditProcess <AuditProcess
...@@ -58,7 +61,7 @@ const TobeEvaluateDetail = () => { ...@@ -58,7 +61,7 @@ const TobeEvaluateDetail = () => {
<CustomizeColumn id="detail" data={basicInfoList} title="基本信息" column={3} /> <CustomizeColumn id="detail" data={basicInfoList} title="基本信息" column={3} />
</div> </div>
<Card title="考评项目" id="project" style={{ margin: `${theme["@margin-md"]} 0` }}> <Card title="考评项目" id="project" style={{ margin: `${theme["@margin-md"]} 0` }}>
<Table columns={projectColumns} dataSource={initialValue?.items}></Table> <Table columns={projectColumns} rowKey={"id"} dataSource={initialValue?.items}></Table>
</Card> </Card>
<div style={{ margin: `${theme["@margin-md"]} 0` }}> <div style={{ margin: `${theme["@margin-md"]} 0` }}>
<CustomizeColumn id="result" data={evaluateResultColumn} title="考评结果" /> <CustomizeColumn id="result" data={evaluateResultColumn} title="考评结果" />
......
...@@ -13,7 +13,7 @@ import { Link } from 'umi'; ...@@ -13,7 +13,7 @@ import { Link } from 'umi';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect'; import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
const defaultColumns = setColumnsByLinks({ const defaultColumns = setColumnsByLinks({
detail: '/memberCenter/memberAbility/memberEvaluate/tobeReviewII/detail', detail: '/memberCenter/memberAbility/memberEvaluate/tobeReviewII/preview',
}); });
interface Iprops {}; interface Iprops {};
......
...@@ -58,14 +58,19 @@ const resultForm = createFormActions(); ...@@ -58,14 +58,19 @@ const resultForm = createFormActions();
const TobeEvaluateDetail = () => { const TobeEvaluateDetail = () => {
const { visible, toggle } = useModal(); const { visible, toggle } = useModal();
const { visible: resultVisible, toggle: resultToggle } = useModal(); const { visible: resultVisible, toggle: resultToggle } = useModal();
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { loading, initialValue, setInitialValue, refresh }= useInitialValue<GetMemberAppraisalWaitSubmitGetResponse, { id: string }>(PublicApi.getMemberAppraisalWaitSubmitGet, params) const { loading, initialValue, setInitialValue, refresh }= useInitialValue<GetMemberAppraisalWaitSubmitGetResponse, { id: string }>(PublicApi.getMemberAppraisalWaitSubmitGet, params)
const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: ['result'], initialValue: initialValue}) const { anchorHeader, basicInfoList, evaluateResultColumn, auditProcess } = useGetDetailCommon({blackList: ['result'], initialValue: initialValue})
const [submitLoading, setSubmitLoading] = useState<boolean>(false); const [submitLoading, setSubmitLoading] = useState<boolean>(false);
const [ editingScoreData, setEditingScoreData ] = useState<any>({}) const [ editingScoreData, setEditingScoreData ] = useState<any>({})
const isView = useMemo(() => lastTypeParams === '/preview' , [lastTypeParams])
const withEditProjectColumns = useMemo(() => { const withEditProjectColumns = useMemo(() => {
if (isView) {
return projectColumns
}
const temp = projectColumns.concat({ const temp = projectColumns.concat({
title: '操作', title: '操作',
render: (text, record) => { render: (text, record) => {
...@@ -73,7 +78,7 @@ const TobeEvaluateDetail = () => { ...@@ -73,7 +78,7 @@ const TobeEvaluateDetail = () => {
} }
}) })
return temp; return temp;
}, [projectColumns]) }, [projectColumns, isView])
const editScore = (record: any) => { const editScore = (record: any) => {
setEditingScoreData(record); setEditingScoreData(record);
...@@ -158,8 +163,9 @@ const TobeEvaluateDetail = () => { ...@@ -158,8 +163,9 @@ const TobeEvaluateDetail = () => {
anchors={anchorHeader} anchors={anchorHeader}
extra={ extra={
( (
!initialValue?.totalScore && !initialValue?.totalScore && !isView &&
<Button onClick={() => resultToggle(true)} icon={<CheckCircleOutlined />}>考评结果</Button> ( <Button onClick={() => resultToggle(true)} icon={<CheckCircleOutlined />}>考评结果</Button> ) ||
null
) )
} }
> >
......
...@@ -14,7 +14,7 @@ import { Link } from 'umi'; ...@@ -14,7 +14,7 @@ import { Link } from 'umi';
import { querySchema } from '../tobeEvaluate/schema'; import { querySchema } from '../tobeEvaluate/schema';
const defaultColumns = setColumnsByLinks({ const defaultColumns = setColumnsByLinks({
detail: '/memberCenter/memberAbility/memberEvaluate/tobeSubmitSummary/detail', detail: '/memberCenter/memberAbility/memberEvaluate/tobeSubmitSummary/preview',
}, ['totalScore']); }, ['totalScore']);
interface Iprops {}; interface Iprops {};
......
...@@ -51,6 +51,8 @@ export const commonColumns = [ ...@@ -51,6 +51,8 @@ export const commonColumns = [
render: (text, record) => { render: (text, record) => {
const offset = record.outerStatus % OuterStatusType.length; const offset = record.outerStatus % OuterStatusType.length;
return <StatusTag type={OuterStatusType[offset] as 'success'} title={record.outerStatusName} /> return <StatusTag type={OuterStatusType[offset] as 'success'} title={record.outerStatusName} />
} },
onFilter: (value, record) => record.outerStatus === value,
} }
] ]
...@@ -26,12 +26,14 @@ const formActions = createFormActions() ...@@ -26,12 +26,14 @@ const formActions = createFormActions()
const rectificationAddDetail = () => { const rectificationAddDetail = () => {
const { visible, toggle } = useModal(); const { visible, toggle } = useModal();
const { headers, setHeaders } = useGetAnchorHeader() const { headers, setHeaders } = useGetAnchorHeader()
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { loading, initialValue }= useInitialValue<GetMemberRectifyManageGetResponse, { id: string }>(PublicApi.getMemberRectifyManageGet, params) const { loading, initialValue }= useInitialValue<GetMemberRectifyManageGetResponse, { id: string }>(PublicApi.getMemberRectifyManageGet, params)
const { basicInfo, editInfo, resultInfo } = useGetDetailCommon({initialValue: initialValue as GetMemberRectifyManageGetResponse as any}); const { basicInfo, editInfo, resultInfo } = useGetDetailCommon({initialValue: initialValue as GetMemberRectifyManageGetResponse as any});
const [submitLoading, setSubmitLoading] = useState<boolean>(false); const [submitLoading, setSubmitLoading] = useState<boolean>(false);
const isDetail = useMemo(() => lastTypeParams === '/detail', [lastTypeParams]);
const outerVerifySteps = useMemo(() => { const outerVerifySteps = useMemo(() => {
if (!initialValue?.outerVerifySteps) { if (!initialValue?.outerVerifySteps) {
return [] return []
...@@ -93,7 +95,7 @@ const rectificationAddDetail = () => { ...@@ -93,7 +95,7 @@ const rectificationAddDetail = () => {
title={`整改单号: ${initialValue?.rectifyNo}`} title={`整改单号: ${initialValue?.rectifyNo}`}
anchors={headers} anchors={headers}
extra={ extra={
initialValue?.currentOuterStep === 2 && ( initialValue?.currentOuterStep === 2 && !isDetail && (
<Button type="primary" icon={<FormOutlined />} onClick={() => toggle(true)}>填写整改信息</Button> <Button type="primary" icon={<FormOutlined />} onClick={() => toggle(true)}>填写整改信息</Button>
) )
} }
......
...@@ -35,12 +35,12 @@ const List: React.FC<Iprops> = (props: Iprops) => { ...@@ -35,12 +35,12 @@ const List: React.FC<Iprops> = (props: Iprops) => {
} }
return ( return (
<Space> <Space>
<Link to={`/memberCenter/memberAbility/profile/memberRectification/edit?id=${record.id}`}>进行整改</Link>
<Popconfirm placement="top" title={"是否确认整改?"} onConfirm={() => handleSendNotice(record.id)} > <Popconfirm placement="top" title={"是否确认整改?"} onConfirm={() => handleSendNotice(record.id)} >
<Spin spinning={isloading}> <Spin spinning={isloading}>
<a>提交整改</a> <a>提交整改</a>
</Spin> </Spin>
</Popconfirm> </Popconfirm>
<Link to={`/memberCenter/memberAbility/profile/memberRectification/edit?id=${record.id}`}>进行整改</Link>
</Space> </Space>
) )
} }
......
...@@ -102,7 +102,7 @@ export const rectificationReportSchema: ISchema = { ...@@ -102,7 +102,7 @@ export const rectificationReportSchema: ISchema = {
} }
}, },
reportAttachments: { reportAttachments: {
title: <div>附件 <span style={{color: '#FF4D4F'}}>*</span></div>, title: "附件",
type: 'array', type: 'array',
'x-component': 'FormilyUploadFiles', 'x-component': 'FormilyUploadFiles',
'x-rules': [ 'x-rules': [
......
import React, { useCallback, useMemo, useState } from 'react'; import React, { useCallback, useMemo, useState } from 'react';
import { Spin } from 'antd'; import { Spin, Button } from 'antd';
import AnchorPage from '@/layouts/AnchorPage'; import AnchorPage from '@/layouts/AnchorPage';
import CustomizeColumn from '@/components/CustomizeColumn'; import CustomizeColumn from '@/components/CustomizeColumn';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
...@@ -9,19 +9,38 @@ import useGetDetailCommon from './common/hooks/useGetDetailCommon'; ...@@ -9,19 +9,38 @@ import useGetDetailCommon from './common/hooks/useGetDetailCommon';
import { usePageStatus } from '@/hooks/usePageStatus'; import { usePageStatus } from '@/hooks/usePageStatus';
import useInitialValue from '../../common/hooks/useInitialValue'; import useInitialValue from '../../common/hooks/useInitialValue';
import { GetMemberComplaintSubGetRequest, GetMemberComplaintSubGetResponse, } from '@/services/MemberV2Api'; import { GetMemberComplaintSubGetRequest, GetMemberComplaintSubGetResponse, } from '@/services/MemberV2Api';
import { FormOutlined } from '@ant-design/icons';
import { history } from 'umi';
const TobeEvaluateDetail = () => { const TobeEvaluateDetail = () => {
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { initialValue } = useInitialValue<GetMemberComplaintSubGetResponse, GetMemberComplaintSubGetRequest>(PublicApi.getMemberComplaintSubGet, params); const { initialValue } = useInitialValue<GetMemberComplaintSubGetResponse, GetMemberComplaintSubGetRequest>(PublicApi.getMemberComplaintSubGet, params);
const { headers } = useGetAnchorHeader([], {initialValue: initialValue}) const { headers } = useGetAnchorHeader([], {initialValue: initialValue})
const { basicInfo, resultInfo } = useGetDetailCommon({initialValue}) const { basicInfo, resultInfo } = useGetDetailCommon({initialValue})
const isDetail = useMemo(() => lastTypeParams === '/detail', [lastTypeParams])
const [submitLoading, setSubmitLoading] = useState<boolean>(false);
const handleSubmit = async () => {
setSubmitLoading(true)
const service = PublicApi.postMemberComplaintSubSubmit
const { data, code } = await service({ id: +id });
setSubmitLoading(false)
if (code === 1000) {
history.goBack();
}
}
return ( return (
<Spin spinning={false}> <Spin spinning={false}>
<AnchorPage <AnchorPage
title={`事件主题:${initialValue?.subject}`} title={`事件主题:${initialValue?.subject}`}
anchors={headers} anchors={headers}
extra={
isDetail && (
<Button type="primary" loading={submitLoading} icon={<FormOutlined />} onClick={handleSubmit}>提交投诉建议</Button>
)
}
> >
<CustomizeColumn id="detail" data={basicInfo} title="投诉建议信息" column={3} /> <CustomizeColumn id="detail" data={basicInfo} title="投诉建议信息" column={3} />
{ {
......
import React, { useRef, useState } from 'react'; import React, { useRef, useState } from 'react';
import { Card, Space, Button, Spin } from 'antd' import { Card, Space, Button, Spin, Popconfirm } from 'antd'
import { setColumnsByLinks } from './common/columns'; import { setColumnsByLinks } from './common/columns';
import { complaintAndSuggestListSchema } from './common/schema'; import { complaintAndSuggestListSchema } from './common/schema';
import useFetchList from '../../memberEvaluate/hooks/useFetchList'; import useFetchList from '../../memberEvaluate/hooks/useFetchList';
...@@ -16,7 +16,7 @@ import moment from 'moment'; ...@@ -16,7 +16,7 @@ import moment from 'moment';
interface Iprops {}; interface Iprops {};
const queryColumns = setColumnsByLinks({ const queryColumns = setColumnsByLinks({
detail: '/memberCenter/memberAbility/profile/suggestion/detail' detail: '/memberCenter/memberAbility/profile/suggestion/preview'
}) })
const List: React.FC<Iprops> = (props: Iprops) => { const List: React.FC<Iprops> = (props: Iprops) => {
...@@ -33,13 +33,16 @@ const List: React.FC<Iprops> = (props: Iprops) => { ...@@ -33,13 +33,16 @@ const List: React.FC<Iprops> = (props: Iprops) => {
const loading = currentIdIsInLoading.includes(record.id); const loading = currentIdIsInLoading.includes(record.id);
return ( return (
<Space> <Space>
<Spin spinning={loading}> {/* <Spin spinning={loading}>
<a onClick={() => handleSubmit({id: record.id}, "submit")}>提交投诉建议</a> <a onClick={() => handleSubmit({id: record.id}, "submit")}>提交投诉建议</a>
</Spin> </Spin> */}
<Link to={`/memberCenter/memberAbility/profile/suggestion/detail?id=${record.id}`}>提交投诉建议</Link>
<Link to={`/memberCenter/memberAbility/profile/suggestion/edit?id=${record.id}`}>修改</Link> <Link to={`/memberCenter/memberAbility/profile/suggestion/edit?id=${record.id}`}>修改</Link>
<Spin spinning={loading}> <Popconfirm placement="top" title={"是否确认删除?"} onConfirm={() => handleSubmit({id: record.id}, "delete")} >
<a onClick={() => handleSubmit({id: record.id}, "delete")}>删除</a> <Spin spinning={loading}>
</Spin> <a>删除</a>
</Spin>
</Popconfirm>
</Space> </Space>
) )
} }
......
...@@ -32,7 +32,7 @@ const listColumns: ColumnsType<GetMemberRectifySummaryPageResponseDetail> = [ ...@@ -32,7 +32,7 @@ const listColumns: ColumnsType<GetMemberRectifySummaryPageResponseDetail> = [
dataIndex: 'agreeResultName', dataIndex: 'agreeResultName',
render: (text, record) => { render: (text, record) => {
return record.agreeResult ? record.agreeResultName : ''; return record.agreeResult ? record.agreeResultName : '';
} },
}, },
{ {
title: '外部状态', title: '外部状态',
...@@ -40,7 +40,8 @@ const listColumns: ColumnsType<GetMemberRectifySummaryPageResponseDetail> = [ ...@@ -40,7 +40,8 @@ const listColumns: ColumnsType<GetMemberRectifySummaryPageResponseDetail> = [
render: (text, record) => { render: (text, record) => {
const offset = record.outerStatus % OuterStatusType.length; const offset = record.outerStatus % OuterStatusType.length;
return <StatusTag type={OuterStatusType[offset] as 'success'} title={record.outerStatusName} /> return <StatusTag type={OuterStatusType[offset] as 'success'} title={record.outerStatusName} />
} },
onFilter: (value, record) => { return record.outerStatus === value },
} }
] ]
......
import { ISchema } from '@formily/antd'; import { ISchema } from '@formily/antd';
import React from 'react';
export const rectificationAddSchema: ISchema = { export const rectificationAddSchema: ISchema = {
type: "object", type: "object",
...@@ -66,9 +67,8 @@ export const rectificationAddSchema: ISchema = { ...@@ -66,9 +67,8 @@ export const rectificationAddSchema: ISchema = {
}, },
'[rectifyDayStart, rectifyDayEnd]': { '[rectifyDayStart, rectifyDayEnd]': {
type: 'object', type: 'object',
title: "整改期限", title: <div>整改期限 <span style={{color: '#ff4d4f', marginLeft: '4px'}}>*</span></div>,
'x-component': "FormilyRangeTime", 'x-component': "FormilyRangeTime",
"x-rules": [ "x-rules": [
{ {
required: true, required: true,
......
...@@ -33,11 +33,13 @@ const List: React.FC<Iprops> = (props: Iprops) => { ...@@ -33,11 +33,13 @@ const List: React.FC<Iprops> = (props: Iprops) => {
const loading = currentIdIsInLoading.includes(record.id) const loading = currentIdIsInLoading.includes(record.id)
return ( return (
<Space> <Space>
<Spin spinning={loading}> <Popconfirm placement="top" title={"是否确认发送整改通知?"} onConfirm={() => handleSendNotice(record.id, "send")}>
<a onClick={() => handleSendNotice(record.id, "send")}>发送整改通知</a> <Spin spinning={loading}>
</Spin> <a >发送整改通知</a>
</Spin>
</Popconfirm>
<Link to={`/memberCenter/memberAbility/memberRectification/rectificationAdd/edit?id=${record.id}`}>修改</Link> <Link to={`/memberCenter/memberAbility/memberRectification/rectificationAdd/edit?id=${record.id}`}>修改</Link>
<Popconfirm placement="top" title={"是否确认删除"} onConfirm={() => handleSendNotice(record.id, "remove")}> <Popconfirm placement="top" title={"是否确认删除?"} onConfirm={() => handleSendNotice(record.id, "remove")}>
<Spin spinning={loading}> <Spin spinning={loading}>
<a>删除</a> <a>删除</a>
</Spin> </Spin>
......
...@@ -69,14 +69,14 @@ const rectificationAddDetail = () => { ...@@ -69,14 +69,14 @@ const rectificationAddDetail = () => {
<div id="editInfo" style={{ margin: `${theme["@margin-md"]} 0` }}> <div id="editInfo" style={{ margin: `${theme["@margin-md"]} 0` }}>
<CustomizeColumn data={editInfo} title="整改信息" column={1} /> <CustomizeColumn data={editInfo} title="整改信息" column={1} />
</div> </div>
) ) || null
} }
{ {
initialValue?.agreeResult && ( initialValue?.agreeResult && (
<div id="result" style={{ margin: `${theme["@margin-md"]} 0` }}> <div id="result" style={{ margin: `${theme["@margin-md"]} 0` }}>
<CustomizeColumn data={resultInfo} title="整改结果" column={1} /> <CustomizeColumn data={resultInfo} title="整改结果" column={1} />
</div> </div>
) ) || null
} }
<div id="record"> <div id="record">
<FlowRecords <FlowRecords
......
...@@ -24,12 +24,14 @@ const formActions = createFormActions() ...@@ -24,12 +24,14 @@ const formActions = createFormActions()
const TobeEvaluateDetail = () => { const TobeEvaluateDetail = () => {
const { visible, toggle } = useModal(); const { visible, toggle } = useModal();
const { headers } = useGetAnchorHeader(["editInfo", "result"]) const { headers } = useGetAnchorHeader(["editInfo", "result"])
const { id } = usePageStatus(); const { id, lastTypeParams } = usePageStatus();
const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]); const params = useMemo(() => { return id ? { id: id.toString() } : null }, [id]);
const { loading, initialValue }= useInitialValue<GetMemberRectifyWaitAddGetResponse, { id: string }>(PublicApi.getMemberRectifyWaitConfirmGet, params) const { loading, initialValue }= useInitialValue<GetMemberRectifyWaitAddGetResponse, { id: string }>(PublicApi.getMemberRectifyWaitConfirmGet, params)
const { basicInfo, editInfo, resultInfo } = useGetDetailCommon({initialValue}); const { basicInfo, editInfo, resultInfo } = useGetDetailCommon({initialValue});
const [submitLoading, setSubmitLoading] = useState<boolean>(false); const [submitLoading, setSubmitLoading] = useState<boolean>(false);
const isView = useMemo(() => lastTypeParams === '/preview', [lastTypeParams]);
const outerVerifySteps = useMemo(() => { const outerVerifySteps = useMemo(() => {
if (!initialValue?.outerVerifySteps) { if (!initialValue?.outerVerifySteps) {
return [] return []
...@@ -66,7 +68,7 @@ const TobeEvaluateDetail = () => { ...@@ -66,7 +68,7 @@ const TobeEvaluateDetail = () => {
title={initialValue?.subject} title={initialValue?.subject}
anchors={headers} anchors={headers}
extra={ extra={
<Button type="primary" onClick={() => toggle(true)}>提交</Button> !isView && (<Button type="primary" onClick={() => toggle(true)}>提交</Button>) || null
} }
> >
<AuditProcess <AuditProcess
......
...@@ -16,7 +16,7 @@ interface Iprops {}; ...@@ -16,7 +16,7 @@ interface Iprops {};
const queryColumns = setColumnsByLinks( const queryColumns = setColumnsByLinks(
{ {
detail: '/memberCenter/memberAbility/memberRectification/tobeConfirmRectification/detail' detail: '/memberCenter/memberAbility/memberRectification/tobeConfirmRectification/preview'
}, },
["agreeResultName"] ["agreeResultName"]
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment