From b761369320d8c4bd3af72cbd676a0bb03bd142c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=AB=A5=E5=B4=87?= <792998983@qq.com> Date: Wed, 16 Nov 2022 14:55:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=9B=E5=AE=A2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=94=99=E4=B9=B1=E6=97=B6=E7=9A=84=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/military/task/static.js | 58 +++++++++++++++++++++++++- src/military/task/taskDetail/index.jsx | 32 +++----------- src/military/task/taskList/index.jsx | 31 +------------- 3 files changed, 65 insertions(+), 56 deletions(-) diff --git a/src/military/task/static.js b/src/military/task/static.js index d7bb4066..0360307c 100644 --- a/src/military/task/static.js +++ b/src/military/task/static.js @@ -1,9 +1,13 @@ -// task静态数据 +import { formatDuring } from 'educoder'; + +// task静态数据,工具函数 +// 任务状态分组 export const taskStatusArr = [ { dicItemCode: "3,4,5,6,7", name: "正在进行中", dicItemName: "正在进行中" }, { dicItemCode: "8", name: "已完成", dicItemName: "已完成" }, ]; +// 所有任务状态 export const taskStatusAllArr = [ { dicItemCode: 0, name: "草稿", dicItemName: "草稿" }, { dicItemCode: 1, name: "待审核", dicItemName: "待审核" }, @@ -17,43 +21,51 @@ export const taskStatusAllArr = [ { dicItemCode: 9, name: "待修缮", dicItemName: "待修缮" }, ]; +// 到期时间筛选项 export const taskTimeArr = [ { dicItemCode: 1, name: "24小时到期", dicItemName: "24小时到期" }, { dicItemCode: 3, name: "3天内到期", dicItemName: "3天内到期" }, { dicItemCode: 7, name: "7天内到期", dicItemName: "7天内到期" }, ]; +// 悬赏选项 export const taskModeIdArr = [ { dicItemCode: 1, name: "单人悬赏", dicItemName: "单人悬赏" }, { dicItemCode: 2, name: "多人悬赏", dicItemName: "多人悬赏" }, { dicItemCode: 3, name: "计件悬赏", dicItemName: "计件悬赏" }, ]; +// 任务筛选状态组 export const approveArr = [ { dicItemCode: "3,4,5,6,7,8", name: "已同意", dicItemName: "已同意" }, { dicItemCode: "2", name: "已拒绝", dicItemName: "已拒绝" }, { dicItemCode: "9", name: "待修缮", dicItemName: "待修缮" }, ]; +// 证明选项 export const proofArr = [ { dicItemCode: 1, name: "已同意", dicItemName: "已同意" }, { dicItemCode: 0, name: "已拒绝", dicItemName: "已拒绝" }, { dicItemCode: 2, name: "待审核", dicItemName: "待审核" }, ]; +// 投诉受理选项 export const publicityArr = [ { dicItemCode: 1, name: "已受理", dicItemName: "已受理" }, { dicItemCode: 0, name: "不受理", dicItemName: "不受理" }, ]; +// 合同审批选项 export const agreementArr = [ { dicItemCode: 0, name: "已驳回", dicItemName: "已驳回" }, { dicItemCode: 1, name: "已同意", dicItemName: "已同意" }, { dicItemCode: 2, name: "待审核", dicItemName: "待审核" }, ]; +// 任务类型选项 export const publishModeArr = ["自主提交", "统筹任务"]; +// 延期列表选项 export const delayTaskArr = [ { dicItemCode: 3, name: "成果征集中", dicItemName: "成果征集中" }, { dicItemCode: 4, name: "成果评选中", dicItemName: "成果评选中" }, @@ -61,11 +73,13 @@ export const delayTaskArr = [ { dicItemCode: 7, name: "支付中", dicItemName: "支付中" }, ]; +// 延期选项 export const delayDealArr = [ { dicItemCode: 1, name: "延期", dicItemName: "延期" }, { dicItemCode: 2, name: "关闭", dicItemName: "关闭" }, ]; +// 排序选项 export const sortArr = [ { name: "综合", @@ -91,12 +105,14 @@ export const sortArr = [ }, ]; +// 任务成果状态 export const applyStatusArr = [ { dicItemCode: "0,3,4", name: "待确认", dicItemName: "待确认" }, { dicItemCode: "1", name: "未采纳", dicItemName: "未采纳" }, { dicItemCode: "2", name: "评选胜出", dicItemName: "评选胜出" }, ]; +// 任务成果状态 export const applyStatusAllArr = [ { dicItemCode: "0", name: "待确认", dicItemName: "待确认" }, { dicItemCode: "1", name: "未采纳", dicItemName: "未采纳" }, @@ -105,24 +121,28 @@ export const applyStatusAllArr = [ { dicItemCode: "4", name: "待确认", dicItemName: "待确认" }, ]; +// 任务成果审核状态 export const paperCheckStatusArr = [ { dicItemCode: "2", name: "待审核", dicItemName: "待审核" }, { dicItemCode: "1", name: "通过", dicItemName: "通过" }, { dicItemCode: "0", name: "未通过", dicItemName: "未通过" }, ]; +// 提示语数组 export const paperCheckTextArr = [ "您的成果审核未通过", "您的成果已经审核通过!", "您已成功提交,请等待审核!", ]; +// 成果申诉选项 export const paperComplainStatusArr = [ { dicItemCode: "0", name: "未通过", dicItemName: "未通过" }, { dicItemCode: "1", name: "通过", dicItemName: "通过" }, { dicItemCode: "2", name: "待审核", dicItemName: "待审核" }, ]; +// 公示选项 export const showUserModeArr = [ { dicItemCode: 0, name: "不公示", dicItemName: "不公示" }, { dicItemCode: 1, name: "自动公示", dicItemName: "自动公示" }, @@ -183,3 +203,39 @@ export const expertReviewArr = [ { dicItemCode: 1, name: "提交评审", dicItemName: "提交评审" }, { dicItemCode: -1, name: "不提交评审", dicItemName: "不提交评审" }, ]; + +// 计算剩余/延期时间 +export function surplusTime(item) { + let surplus = 0; + switch (item.status) { + case 3: + surplus = item.collectingDays * 24 * 3600 - (new Date() - new Date((item.publishedAt || item.createdAt).replace(/-/g, '/'))) / 1000; + break; + case 4: + if (!item.collectingCompleteAt) { break; } + surplus = item.choosingDays * 24 * 3600 - (new Date() - new Date(item.collectingCompleteAt.replace(/-/g, '/'))) / 1000; + break; + case 5: + if (!item.makePublicAt) { break; } + surplus = item.makePublicDays * 24 * 3600 - (new Date() - new Date(item.makePublicAt.replace(/-/g, '/'))) / 1000; + break; + case 6: + if (!item.publicityCompleteAt) { break; } + surplus = item.signingDays * 24 * 3600 - (new Date() - new Date(item.publicityCompleteAt.replace(/-/g, '/'))) / 1000; + break; + case 7: + if (!item.signingCompleteAt) { break; } + surplus = item.payingDays * 24 * 3600 - (new Date() - new Date(item.signingCompleteAt.replace(/-/g, '/'))) / 1000; + break; + default: + surplus = 0; + } + + let surplusTimetext = formatDuring(surplus); + let delayTime = surplus == 0 ? '' : surplus > 0 ? '剩余' + surplusTimetext : '延期' + surplusTimetext; + return { + surplus, + surplusTimetext, + delayTime + }; +} diff --git a/src/military/task/taskDetail/index.jsx b/src/military/task/taskDetail/index.jsx index 3b94315c..08c924da 100644 --- a/src/military/task/taskDetail/index.jsx +++ b/src/military/task/taskDetail/index.jsx @@ -9,7 +9,7 @@ import StatusNav from '../../components/statusNav'; import ItemListPaper from '../components/itemListPaper'; import ProofModal from '../components/proofModal'; import { getTaskDetail, getTaskCategory, getTaskPaper, makePublic, addPaper, getAgreement, agreement, checkAgreement, checkHavePaper, addExpertReview, followTask, unfollowTask } from '../api'; -import { taskModeIdArr, applyStatusArr, applyStatusAllArr, agreementContent, paperCheckTextArr } from '../static'; +import { taskModeIdArr, applyStatusArr, applyStatusAllArr, agreementContent, paperCheckTextArr, surplusTime} from '../static'; import { httpUrl } from '../fetch'; import './index.scss'; import { getRules } from 'src/military/expert/api'; @@ -160,37 +160,17 @@ export default Form.create()( // 流程步骤显示,返回剩余时间 const process = useCallback((title, status, days) => { - let surplusTimetext = ''; - let surplus; - if (detailData.status === status) { - switch (status) { - case 3: - surplus = detailData.collectingDays * 24 * 3600 - (new Date() - new Date((detailData.publishedAt || detailData.createdAt).replace(/-/g,'/'))) / 1000; - break; - case 4: - surplus = detailData.choosingDays * 24 * 3600 - (new Date() - new Date(detailData.collectingCompleteAt.replace(/-/g,'/'))) / 1000; - break; - case 5: - surplus = detailData.makePublicDays * 24 * 3600 - (new Date() - new Date(detailData.makePublicAt.replace(/-/g,'/'))) / 1000; - break; - case 6: - surplus = detailData.signingDays * 24 * 3600 - (new Date() - new Date(detailData.publicityCompleteAt.replace(/-/g,'/'))) / 1000; - break; - case 7: - surplus = detailData.payingDays * 24 * 3600 - (new Date() - new Date(detailData.signingCompleteAt.replace(/-/g,'/'))) / 1000; - break; - default: - surplus = 0; - } - surplusTimetext = formatDuring(surplus); - } + let {surplus, + surplusTimetext, + delayTime + } = surplusTime(detailData); return (
{days}天
: ''} {/* 因为有时只延期几秒或者几分钟时后端没有返回延期,所以这里加一个判断 */} - {detailData.status === status && days ?{surplus < 0 ? ('延期' + surplusTimetext) : ('剩余' + surplusTimetext)}
: ''} + {detailData.status === status && days ?{delayTime}
: ''} {detailData.status === status && detailData.cancelStatus === 1 && surplus > 0 &&(手动延期)
} {detailData.status === status && detailData.delayed && detailData.cancelStatus === 0 && surplus > 0 && detailData.delayCount &&(系统自动延期)
} diff --git a/src/military/task/taskList/index.jsx b/src/military/task/taskList/index.jsx index b493d93b..a11e3dc3 100644 --- a/src/military/task/taskList/index.jsx +++ b/src/military/task/taskList/index.jsx @@ -5,7 +5,7 @@ import { formatDuring, getUrlToken, addMeta, IsPC } from 'educoder'; import ChooseNav from '../../components/chooseNav'; import SortBox from '../../components/sortBox'; import ItemListTask from '../components/itemListTask'; -import { taskTimeArr, taskStatusArr, sortArr, taskModeIdArr } from '../static'; +import { taskTimeArr, taskStatusArr, sortArr, taskModeIdArr, surplusTime } from '../static'; import { getTaskList, getTaskCategory, getCompanyInfo } from '../api'; import polify from '../image/polify.png'; import '../index.scss'; @@ -85,7 +85,7 @@ export default ({ history, current_user, showLoginDialog, location, mygetHelmeta getTaskList(params).then(data => { if (data) { for (const item of data.rows) { - item.delayTime = surplusTime(item); + item.delayTime = surplusTime(item).delayTime; } setTaskList(data.rows); setTotal(data.total); @@ -127,33 +127,6 @@ export default ({ history, current_user, showLoginDialog, location, mygetHelmeta setCurPage(1); }, []); - // 计算任务时间,返回延时/剩余时间 - function surplusTime(item) { - let surplus; - switch (item.status) { - case 3: - surplus = item.collectingDays * 24 * 3600 - (new Date() - new Date((item.publishedAt || item.createdAt).replace(/-/g, '/'))) / 1000; - break; - case 4: - surplus = item.choosingDays * 24 * 3600 - (new Date() - new Date(item.collectingCompleteAt.replace(/-/g, '/'))) / 1000; - break; - case 5: - surplus = item.makePublicDays * 24 * 3600 - (new Date() - new Date(item.makePublicAt.replace(/-/g, '/'))) / 1000; - break; - case 6: - surplus = item.signingDays * 24 * 3600 - (new Date() - new Date(item.publicityCompleteAt.replace(/-/g, '/'))) / 1000; - break; - case 7: - surplus = item.payingDays * 24 * 3600 - (new Date() - new Date(item.signingCompleteAt.replace(/-/g, '/'))) / 1000; - break; - default: - surplus = 0; - } - - let surplusTimetext = formatDuring(surplus); - return surplus > 0 ? '剩余' + surplusTimetext : '延期' + surplusTimetext; - } - // 改变排序 const changeSort = useCallback((sortType) => { let sortValue = '';